发现优秀的 MCP 服务器
通过 MCP 服务器扩展您的代理能力,拥有 86,267 个能力。
Salesforce-to-Glider MCP Server
Provides governed MCP tools for a controlled, AI-assisted asset-change pipeline, featuring natural-language requests, mandatory approvals, execution-time revalidation, and complete audit.
obsidian-mcp-secure
Secure MCP server that bridges AI clients like Claude Desktop to Obsidian vaults, enabling read/write operations with OWASP Top 10 security controls and audit logging.
@cryptoapis-io/mcp-prepare-transactions
MCP server for Crypto APIs Prepare Transactions product that builds unsigned EVM transactions for native coin, fungible token (ERC-20), and NFT (ERC-721) transfers.
ArcLeap MCP
MCP server that lets AI agents bridge native USDC between networks (Ethereum, Base, Arbitrum, OP Mainnet, Polygon, Avalanche, and testnets) via Circle CCTP V2, featuring idempotent transfers, disk-persisted state, balance/gas checks, and configurable limits.
@powforge/captcha-mcp
MCP server that gates API calls to AI agents using proof-of-work (free) or Lightning payment (3 sats), providing challenge, verify, and status tools for per-call authentication without accounts.
Data Science AI MCP
Data Science AI - MCP server providing AI-powered tools and automation by MEOK AI Labs
Expense Tracker MCP Server
Enables personal expense management with SQLite storage, allowing users to add, update, delete, list, and summarize expenses by category through natural language interactions.
Weik.io Integration Expert: MCP Server
基于 Apache Camel 的 Weik.io 集成平台的 MCP 服务器
wger MCP Server
MCP server that wraps wger fitness/nutrition management platform, providing 15 tools for exercise search, ingredient nutrition lookup, weight tracking, and more, accessible to any MCP-compatible AI agent.
Notion MCP Server
镜子 (jìng zi)
GitMCP
Transforms any GitHub repository into a documentation hub for AI assistants, enabling up-to-date access to documentation and code to eliminate hallucinations.
security-tools
Provides security tools (prompt injection detection, CVE lookup, version impact assessment) for MCP clients like Claude.
loa-mcp-server
MCP server that searches Japanese addresses and returns their locations as polygons or points using the open 住所LOD dataset, enabling geocoding, reverse geocoding, batch GeoJSON export, and map visualization.
MCP Chat with Claude
Okay, here's a TypeScript example for a web app (acting as the host) connecting to a Node.js MCP (Microcontroller Platform) server. This example focuses on the core communication and assumes you have a basic understanding of TypeScript, web development, and Node.js. **Conceptual Overview** 1. **Web App (Host - TypeScript/HTML/JavaScript):** * Uses WebSockets to establish a persistent connection with the MCP server. * Sends commands/data to the MCP server. * Receives data/responses from the MCP server. * Updates the UI based on the received data. 2. **MCP Server (Node.js):** * Listens for WebSocket connections from the web app. * Receives commands/data. * Processes the commands (e.g., interacts with hardware, performs calculations). * Sends responses back to the web app. **Example Code** **1. MCP Server (Node.js - `mcp-server.js` or `mcp-server.ts`)** ```typescript // mcp-server.ts import { WebSocketServer, WebSocket } from 'ws'; const wss = new WebSocketServer({ port: 8080 }); // Choose your port wss.on('connection', ws => { console.log('Client connected'); ws.on('message', message => { try { const data = JSON.parse(message.toString()); // Parse JSON data console.log('Received:', data); // **Process the received data/command here** // Example: if (data.command === 'getSensorData') { // Simulate sensor data const sensorValue = Math.random() * 100; const response = { type: 'sensorData', value: sensorValue }; ws.send(JSON.stringify(response)); } else if (data.command === 'setLed') { // Simulate setting an LED const ledState = data.state; console.log(`Setting LED to: ${ledState}`); const response = { type: 'ledStatus', state: ledState }; ws.send(JSON.stringify(response)); } else { ws.send(JSON.stringify({ type: 'error', message: 'Unknown command' })); } } catch (error) { console.error('Error parsing message:', error); ws.send(JSON.stringify({ type: 'error', message: 'Invalid JSON' })); } }); ws.on('close', () => { console.log('Client disconnected'); }); ws.on('error', error => { console.error('WebSocket error:', error); }); }); console.log('MCP Server started on port 8080'); ``` **To run the server:** 1. **Install `ws`:** `npm install ws` 2. **If using TypeScript:** * Compile: `tsc mcp-server.ts` * Run: `node mcp-server.js` (or `node mcp-server.ts` if you're using `ts-node`) 3. **If using JavaScript (after compiling from TypeScript):** * Run: `node mcp-server.js` **2. Web App (Host - TypeScript/HTML/JavaScript)** * **HTML (`index.html`):** ```html <!DOCTYPE html> <html> <head> <title>MCP Host</title> </head> <body> <h1>MCP Host</h1> <button id="getSensorData">Get Sensor Data</button> <p>Sensor Value: <span id="sensorValue"></span></p> <button id="ledOn">LED On</button> <button id="ledOff">LED Off</button> <p>LED Status: <span id="ledStatus"></span></p> <script src="app.js"></script> </body> </html> ``` * **TypeScript (`app.ts`):** ```typescript // app.ts const socket = new WebSocket('ws://localhost:8080'); // Replace with your server address socket.addEventListener('open', () => { console.log('Connected to MCP Server'); }); socket.addEventListener('message', event => { try { const data = JSON.parse(event.data); console.log('Received:', data); if (data.type === 'sensorData') { const sensorValueElement = document.getElementById('sensorValue'); if (sensorValueElement) { sensorValueElement.textContent = data.value.toFixed(2); } } else if (data.type === 'ledStatus') { const ledStatusElement = document.getElementById('ledStatus'); if (ledStatusElement) { ledStatusElement.textContent = data.state ? 'On' : 'Off'; } } else if (data.type === 'error') { console.error('Error from server:', data.message); alert(`Error: ${data.message}`); // Or display in a more user-friendly way } } catch (error) { console.error('Error parsing message:', error); } }); socket.addEventListener('close', () => { console.log('Disconnected from MCP Server'); }); socket.addEventListener('error', error => { console.error('WebSocket error:', error); }); // Button event listeners document.getElementById('getSensorData')?.addEventListener('click', () => { socket.send(JSON.stringify({ command: 'getSensorData' })); }); document.getElementById('ledOn')?.addEventListener('click', () => { socket.send(JSON.stringify({ command: 'setLed', state: true })); }); document.getElementById('ledOff')?.addEventListener('click', () => { socket.send(JSON.stringify({ command: 'setLed', state: false })); }); ``` * **Compile TypeScript:** `tsc app.ts` * **JavaScript (`app.js` - the compiled output):** (This will be generated by the TypeScript compiler) **How to Run the Web App:** 1. **Serve the HTML:** You'll need a web server to serve the `index.html` file. You can use a simple one like `http-server` (install with `npm install -g http-server` and then run `http-server .` in the directory containing `index.html`). Alternatively, use any web server you prefer (e.g., a more complex Node.js server, Python's `http.server`, etc.). 2. **Open in Browser:** Open `http://localhost:8080` (or the address your web server is using) in your web browser. **Explanation and Key Points** * **WebSockets:** WebSockets provide a persistent, full-duplex communication channel between the web app and the MCP server. This is ideal for real-time data exchange. * **JSON:** JSON (JavaScript Object Notation) is used to serialize and deserialize data being sent over the WebSocket connection. This makes it easy to work with data in both the web app and the Node.js server. * **Error Handling:** The code includes basic error handling to catch potential issues like invalid JSON or WebSocket errors. Robust error handling is crucial in real-world applications. * **Command Structure:** The example uses a simple command structure where the web app sends JSON objects with a `command` property to indicate the desired action. The server then processes the command and sends back a response. * **TypeScript:** TypeScript adds static typing to JavaScript, which helps catch errors early in the development process and improves code maintainability. * **Event Listeners:** The web app uses event listeners to handle WebSocket events like `open`, `message`, `close`, and `error`. * **DOM Manipulation:** The web app updates the HTML elements (e.g., `sensorValue`, `ledStatus`) to display the data received from the MCP server. * **Server-Side Logic:** The MCP server's `message` handler is where you would implement the core logic for interacting with your microcontroller or other hardware. The example provides placeholders for simulating sensor data and LED control. **Important Considerations for Real-World Applications** * **Security:** If you're dealing with sensitive data, use secure WebSockets (WSS) with TLS/SSL encryption. Implement authentication and authorization mechanisms to protect your MCP server from unauthorized access. * **Scalability:** For high-traffic applications, consider using a more scalable WebSocket server implementation (e.g., using a load balancer and multiple server instances). * **Data Validation:** Validate the data received from the web app and the MCP server to prevent unexpected errors or security vulnerabilities. * **Error Handling:** Implement comprehensive error handling and logging to diagnose and resolve issues quickly. * **Reconnect Logic:** Implement automatic reconnect logic in the web app to handle cases where the WebSocket connection is lost. * **State Management:** Consider using a state management library (e.g., Redux, Zustand) in the web app to manage the application's state more effectively, especially as the application grows in complexity. * **Hardware Interaction:** The MCP server will need to use appropriate libraries or APIs to communicate with your specific microcontroller or hardware. This will vary depending on the hardware platform you're using. * **Message Queues:** For more complex systems, consider using a message queue (e.g., RabbitMQ, Kafka) to decouple the web app and the MCP server and improve reliability and scalability. **Chinese Translation of Key Terms** * **Web App:** 网络应用程序 (wǎngluò yìngyòng chéngxù) * **Host:** 主机 (zhǔjī) * **MCP (Microcontroller Platform):** 微控制器平台 (wēi kòngzhìqì píngtái) * **Server:** 服务器 (fúwùqì) * **WebSocket:** WebSocket (pronounced the same) * **Connection:** 连接 (liánjiē) * **Data:** 数据 (shùjù) * **Command:** 命令 (mìnglìng) * **Sensor:** 传感器 (chuángǎnqì) * **LED:** LED (pronounced the same) or 发光二极管 (fāguāng èrjígǔan) * **Error:** 错误 (cuòwù) * **Message:** 消息 (xiāoxi) * **Client:** 客户端 (kèhùduān) * **JSON:** JSON (pronounced the same) * **Port:** 端口 (duānkǒu) This comprehensive example should give you a solid foundation for building a web app that communicates with a Node.js MCP server using WebSockets and TypeScript. Remember to adapt the code to your specific hardware and application requirements. Good luck!
mcp-osrs
MCP server for the Old School RuneScape Wiki, game data, Grand Exchange prices, and hiscores with polite client behavior.
emi_mcp_server
A sample MCP server that exposes tools, resources, and prompts for managing users and todos, supporting both stdio and Streamable HTTP transports.
mcp-capstone
MCP server that provides disassembly and reverse engineering capabilities via the Capstone framework, supporting multiple architectures.
MCP Code Mode
Enables AI agents to write and execute Python code in an isolated sandbox that can orchestrate multiple MCP tool calls, reducing context window bloat and improving efficiency for complex workflows.
Airtable MCP Server
Enables complete interaction with Airtable databases through 16 CRUD operations including batch processing, schema management, and record manipulation. Designed for AI applications and n8n workflows with HTTP streaming support.
Hurl OpenAPI MCP Server
Enables AI models to load and inspect OpenAPI specifications, generate Hurl test scripts, and access API documentation for automated testing and API interaction through natural language.
obsidian-mcp
Enables Claude to read your Obsidian vault and retrieve outstanding tasks from daily notes by parsing checkboxes.
MCP Server for Up-to-Date Library Documentation
Provides Large Language Models with real-time access to the latest documentation for Python libraries like Langchain, LlamaIndex, and OpenAI, enabling accurate and up-to-date code suggestions.
claude-usage-mcp
Reports your Claude subscription usage (5-hour and weekly limits) with a forecast and velocity recommendation, using Claude Code's existing OAuth session without requiring an API key.
Basic MCP Server
A minimal Model Context Protocol server demonstrating basic MCP capabilities with example tools, resources, and prompts. Built as a starting template for developers to create their own MCP servers using the Smithery SDK.
mcp-scryfall
Provides access to Magic: The Gathering card database, enabling listing of sets and expansions.
Remote MCP Server on Cloudflare
Knapcode.SampleMcpServer
A sample MCP server built with C# that demonstrates creating and packaging MCP servers, providing a random number generation tool.
Arachne MCP
Self-hosted web-intelligence server for Hermes Agent and other MCP clients, featuring hybrid HTTP+browser crawling, document parsing, search, structured extraction, and change detection.
MCP API Requester
An MCP server that enables LLMs to make arbitrary HTTP requests (GET, POST, PUT, DELETE, etc.) with custom headers, bodies, and cookies, supporting JSON and error handling.
Job Tracker MCP Server
Enables tracking job applications through a pipeline, scheduling follow-ups, and summarizing job search progress via natural language.