发现优秀的 MCP 服务器

通过 MCP 服务器扩展您的代理能力,拥有 86,267 个能力。

开发者工具3,065
MCP Fly Deployer

MCP Fly Deployer

提供 Docker 文件的 MCP 服务器,用于将基于 stdio 的 MCP 服务器部署在 Fly.IO 等平台上。

Hex MCP Server

Hex MCP Server

六角包版本的 MCP 服务器

K8s MCP Server

K8s MCP Server

K8s-mcp-server 是一个模型上下文协议 (MCP) 服务器,它使像 Claude 这样的 AI 助手能够安全地执行 Kubernetes 命令。它在语言模型和必要的 Kubernetes CLI 工具(包括 kubectl、helm、istioctl 和 argocd)之间提供了一座桥梁,允许 AI 系统协助集群管理、故障排除和部署。

openEuler MCP Servers仓库,欢迎大家贡献

openEuler MCP Servers仓库,欢迎大家贡献

README

README

Here are a few ways to interpret "Example MCP Server implements by Go" and their corresponding Chinese translations, along with some context: **1. Most Literal Translation (Focus on the words):** * **Chinese:** 使用 Go 实现的 MCP 服务器示例 * **Pinyin:** Shǐyòng Go shíxiàn de MCP fúwùqì shìlì * **Explanation:** This is a direct translation. It emphasizes that the example server is *implemented* using Go. **2. More Natural Translation (Focus on the meaning):** * **Chinese:** 一个用 Go 语言编写的 MCP 服务器示例 * **Pinyin:** Yī gè yòng Go yǔyán biānxiě de MCP fúwùqì shìlì * **Explanation:** This is a more common and natural way to say it in Chinese. It emphasizes that the server is *written* in Go. **3. If you want to emphasize the *purpose* of the example:** * **Chinese:** Go 语言实现的 MCP 服务器示例,用于演示... (add what it demonstrates) * **Pinyin:** Go yǔyán shíxiàn de MCP fúwùqì shìlì, yòng yú yǎnshì... * **Explanation:** This translates to "A Go language implemented MCP server example, used to demonstrate..." You would then fill in what the example is meant to demonstrate (e.g., basic functionality, specific features, etc.). **4. If you're looking for code examples (which is likely):** * **Chinese:** Go 语言 MCP 服务器示例代码 * **Pinyin:** Go yǔyán MCP fúwùqì shìlì dàimǎ * **Explanation:** This translates to "Go language MCP server example code." This is what you'd use if you're specifically looking for code snippets. **Key Vocabulary:** * **MCP:** MCP (usually left as is, as it's an acronym) * **Server:** 服务器 (fúwùqì) * **Example:** 示例 (shìlì) * **Implements/Implemented:** 实现 (shíxiàn) * **Go (programming language):** Go 语言 (Go yǔyán) * **Written (in a language):** 编写 (biānxiě) * **Code:** 代码 (dàimǎ) * **Used for demonstrating:** 用于演示 (yòng yú yǎnshì) **Which translation is best depends on the context.** If you're just stating a fact, option 2 is probably the most natural. If you're looking for code, option 4 is best. If you want to explain the purpose of the example, use option 3 and fill in the details.

MCP Server Tester

MCP Server Tester

一个使用来自 Smithery 的安装代码来测试 MCP 服务器的 Web 应用程序。

mcp-server-sandbox

mcp-server-sandbox

arm64-mcpelauncher-server

arm64-mcpelauncher-server

适用于 aarch64 设备(如树莓派)的 Minecraft 基岩版 BDS 风格服务器

Figma MCP Server

Figma MCP Server

实验性生成式人工智能 MCP 服务器,用于生成 Figma Tokens

MCP demo (DeepSeek as Client's LLM)

MCP demo (DeepSeek as Client's LLM)

Okay, I can help you outline the steps to run a minimal client-server demo using the DeepSeek API, focusing on the core concepts and providing example code snippets. Since I can't directly execute code or set up environments, I'll give you the instructions and code you'll need to adapt and run yourself. **Important Considerations Before You Start:** * **DeepSeek API Key:** You'll need a valid DeepSeek API key. Obtain one from the DeepSeek AI platform. Keep it secure and don't hardcode it directly into your scripts (use environment variables or configuration files). * **Python Environment:** I'll assume you're using Python. Make sure you have Python 3.7+ installed. * **Libraries:** You'll need the `requests` library for making HTTP requests to the DeepSeek API. Install it using `pip install requests`. You might also want `Flask` or `FastAPI` for a simple server. **Conceptual Overview** 1. **Client:** The client sends a request to the server. In this case, the request will contain a prompt that you want DeepSeek to complete. 2. **Server:** The server receives the request from the client, calls the DeepSeek API with the prompt, gets the response from DeepSeek, and sends the response back to the client. 3. **DeepSeek API:** This is the external service that performs the language model inference. **Step-by-Step Instructions and Code Examples** **1. Server (using Flask)** ```python # server.py from flask import Flask, request, jsonify import requests import os app = Flask(__name__) # Replace with your actual DeepSeek API key (ideally from an environment variable) DEEPSEEK_API_KEY = os.environ.get("DEEPSEEK_API_KEY") # Get from environment DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions" # Replace if different @app.route('/generate', methods=['POST']) def generate_text(): try: data = request.get_json() prompt = data.get('prompt') if not prompt: return jsonify({'error': 'Prompt is required'}), 400 headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {DEEPSEEK_API_KEY}' } payload = { "model": "deepseek-chat", # Or another DeepSeek model "messages": [{"role": "user", "content": prompt}], "max_tokens": 200, # Adjust as needed "temperature": 0.7 # Adjust as needed } response = requests.post(DEEPSEEK_API_URL, headers=headers, json=payload) response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx) deepseek_data = response.json() generated_text = deepseek_data['choices'][0]['message']['content'] return jsonify({'generated_text': generated_text}) except requests.exceptions.RequestException as e: print(f"API Request Error: {e}") return jsonify({'error': f'API Request Error: {e}'}), 500 except Exception as e: print(f"Server Error: {e}") return jsonify({'error': f'Server Error: {e}'}), 500 if __name__ == '__main__': app.run(debug=True, port=5000) # Or any port you prefer ``` **Explanation of `server.py`:** * **Imports:** Imports necessary libraries (Flask, requests, json, os). * **API Key:** Retrieves the DeepSeek API key from an environment variable. **Never hardcode your API key directly in the script!** * **Flask App:** Creates a Flask web application. * **`/generate` Route:** Defines a route that listens for POST requests at `/generate`. * **Request Handling:** * Extracts the `prompt` from the JSON request body. * Constructs the headers for the DeepSeek API request, including the `Authorization` header with your API key. * Creates the payload (JSON data) for the DeepSeek API request. This includes the model name, the prompt (formatted as a message), and other parameters like `max_tokens` and `temperature`. * Sends the request to the DeepSeek API using `requests.post()`. * Handles potential errors (e.g., network issues, invalid API key). * **Response Handling:** * Parses the JSON response from the DeepSeek API. * Extracts the generated text from the response. The exact structure of the response depends on the DeepSeek API. The code assumes a structure like `deepseek_data['choices'][0]['message']['content']`. **You might need to adjust this based on the actual DeepSeek API response format.** * Returns the generated text as a JSON response to the client. * **Error Handling:** Includes `try...except` blocks to catch potential errors during the API request and server processing. Returns error messages to the client. * **Running the App:** Starts the Flask development server. **2. Client (using Python)** ```python # client.py import requests import json SERVER_URL = "http://localhost:5000/generate" # Adjust if your server is running on a different address/port def generate_text(prompt): try: payload = {'prompt': prompt} headers = {'Content-Type': 'application/json'} response = requests.post(SERVER_URL, headers=headers, data=json.dumps(payload)) response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx) data = response.json() generated_text = data.get('generated_text') return generated_text except requests.exceptions.RequestException as e: print(f"Request Error: {e}") return None except Exception as e: print(f"Error: {e}") return None if __name__ == '__main__': user_prompt = "Write a short story about a cat who goes on an adventure." generated_text = generate_text(user_prompt) if generated_text: print("Generated Text:") print(generated_text) else: print("Failed to generate text.") ``` **Explanation of `client.py`:** * **Imports:** Imports the `requests` and `json` libraries. * **`SERVER_URL`:** Defines the URL of the server's `/generate` endpoint. Make sure this matches the address and port where your server is running. * **`generate_text(prompt)` Function:** * Takes a `prompt` as input. * Constructs the payload (JSON data) to send to the server. * Sets the `Content-Type` header to `application/json`. * Sends a POST request to the server using `requests.post()`. * Handles potential errors (e.g., network issues, server not available). * Parses the JSON response from the server. * Extracts the `generated_text` from the response. * Returns the generated text. * **Main Execution Block:** * Sets a sample `user_prompt`. * Calls the `generate_text()` function to get the generated text. * Prints the generated text to the console. **3. Running the Demo** 1. **Set the API Key:** Before running anything, set the `DEEPSEEK_API_KEY` environment variable. How you do this depends on your operating system: * **Linux/macOS:** ```bash export DEEPSEEK_API_KEY="YOUR_DEEPSEEK_API_KEY" ``` * **Windows (Command Prompt):** ```cmd set DEEPSEEK_API_KEY=YOUR_DEEPSEEK_API_KEY ``` * **Windows (PowerShell):** ```powershell $env:DEEPSEEK_API_KEY="YOUR_DEEPSEEK_API_KEY" ``` **Replace `YOUR_DEEPSEEK_API_KEY` with your actual API key.** 2. **Run the Server:** Open a terminal or command prompt, navigate to the directory where you saved `server.py`, and run: ```bash python server.py ``` The Flask development server will start, and you'll see output indicating that it's running. 3. **Run the Client:** Open another terminal or command prompt, navigate to the directory where you saved `client.py`, and run: ```bash python client.py ``` The client will send a request to the server, the server will call the DeepSeek API, and the generated text will be printed to the client's console. **Important Notes and Troubleshooting** * **API Key:** Double-check that your API key is correct and that you've set the environment variable properly. An incorrect API key will result in an authentication error. * **Network Connectivity:** Make sure your server has internet access to reach the DeepSeek API. * **Error Messages:** Carefully examine any error messages you receive. They often provide clues about what's going wrong. * **DeepSeek API Response Format:** The code assumes a specific format for the DeepSeek API response. If the API changes its response format, you'll need to update the code accordingly. Refer to the DeepSeek API documentation for the correct format. * **Rate Limits:** Be aware of the DeepSeek API's rate limits. If you send too many requests in a short period, you might get rate-limited. Implement error handling and potentially retry logic to deal with rate limits. * **Security:** For production environments, use a more robust web server (like Gunicorn or uWSGI) instead of the Flask development server. Also, consider using HTTPS for secure communication between the client and server. * **Model Selection:** The code uses `"deepseek-chat"` as the model. Check the DeepSeek API documentation for other available models and their capabilities. * **Prompt Engineering:** The quality of the generated text depends heavily on the prompt you provide. Experiment with different prompts to get the best results. **Simplified Chinese Translation of Key Phrases** Here are some key phrases translated into Simplified Chinese: * **Prompt:** 提示 (tíshì) * **Generated Text:** 生成的文本 (shēngchéng de wénběn) * **API Key:** API 密钥 (API mìyào) * **Server:** 服务器 (fúwùqì) * **Client:** 客户端 (kèhùduān) * **Error:** 错误 (cuòwù) * **Request:** 请求 (qǐngqiú) * **Response:** 响应 (xiǎngyìng) * **Authentication:** 身份验证 (shēnfèn yànzhèng) * **Rate Limit:** 速率限制 (sùlǜ xiànzhì) This detailed guide should help you get started with a basic DeepSeek API client-server demo. Remember to adapt the code to your specific needs and consult the DeepSeek API documentation for the most up-to-date information. Good luck!

python-docs-server MCP Server

python-docs-server MCP Server

镜子 (jìng zi)

uv-mcp-server

uv-mcp-server

Okay, I understand. Please provide the English text you would like me to translate to Chinese. I will focus on providing a stable and accurate translation, avoiding any "hallucinations" or nonsensical outputs.

Valjs

Valjs

一个用于 Valtown 封装器的 MCP 服务器 (糟糕的描述)

Overview

Overview

第一次尝试 MCP 服务器。

Kaggle NodeJS MCP Server

Kaggle NodeJS MCP Server

Documentation MCP Server

Documentation MCP Server

一个用于访问常用库的最新文档的 MCP 服务器 (Yī gè yòng yú fǎngwèn chángyòng kù de zuìxīn wéndàng de MCP fúwùqì)

codemirror-mcp

codemirror-mcp

Here are a few possible translations, depending on the nuance you want to convey: **Option 1 (Most straightforward and common):** * **Chinese:** CodeMirror 扩展,用于连接模型上下文提供程序 (MCP) * **Pinyin:** CodeMirror kuòzhǎn, yòng yú liánjiē móxíng shàngxiàwén tígōngzhě (MCP) * **Explanation:** This is a direct translation. "扩展" (kuòzhǎn) means "extension," "用于" (yòng yú) means "used for," "连接" (liánjiē) means "connect," "模型上下文提供程序" (móxíng shàngxiàwén tígōngzhě) means "Model Context Provider," and "(MCP)" is the abbreviation. This is suitable for technical documentation or general communication. **Option 2 (More emphasis on integration):** * **Chinese:** CodeMirror 扩展,用于集成模型上下文提供程序 (MCP) * **Pinyin:** CodeMirror kuòzhǎn, yòng yú jíchéng móxíng shàngxiàwén tígōngzhě (MCP) * **Explanation:** "集成" (jíchéng) means "integrate." This emphasizes that the extension is designed to make the MCP work seamlessly with CodeMirror. **Option 3 (More descriptive, if the purpose of the hook is important):** * **Chinese:** CodeMirror 扩展,用于将模型上下文提供程序 (MCP) 接入 * **Pinyin:** CodeMirror kuòzhǎn, yòng yú jiāng móxíng shàngxiàwén tígōngzhě (MCP) jiērù * **Explanation:** "接入" (jiērù) means "to connect to," "to access," or "to hook up to." This is a good choice if you want to emphasize the act of connecting the MCP to CodeMirror. The "将...接入" (jiāng...jiērù) structure is common for describing connecting something to something else. **Option 4 (More informal, like a developer might say):** * **Chinese:** CodeMirror 扩展,用来搞定模型上下文提供程序 (MCP) * **Pinyin:** CodeMirror kuòzhǎn, yòng lái gǎodìng móxíng shàngxiàwén tígōngzhě (MCP) * **Explanation:** "搞定" (gǎodìng) is a very informal term meaning "to handle," "to take care of," or "to get something done." It's suitable for casual conversation among developers but not for formal documentation. **Recommendation:** For most situations, **Option 1** is the best choice because it's clear, concise, and technically accurate. If you want to emphasize the integration aspect, use **Option 2**. If you want to emphasize the act of connecting, use **Option 3**. Avoid **Option 4** unless you're in a very informal setting.

Perplexity MCP Server

Perplexity MCP Server

镜子 (jìng zi)

MCP Mediator

MCP Mediator

一个基于 Java 的模型上下文协议 (MCP) 中介器实现,提供 MCP 客户端和服务器之间的无缝集成。

Mcp_ui_phase1

Mcp_ui_phase1

为 MCP 服务器创建用户界面。

go-mcp-server-mds

go-mcp-server-mds

一个 Go 语言实现的模型上下文协议 (MCP) 服务器,用于从文件系统中提供带有 frontmatter 支持的 Markdown 文件。

mpd-mcp-server

mpd-mcp-server

doit-mcp-server

doit-mcp-server

为 doit (pydoit) 提供的 MCP 服务器

mcpserver-ts

mcpserver-ts

Here's a basic MCP (Mock Control Panel) server template in TypeScript for quick mock data, along with explanations and considerations: ```typescript // server.ts import express, { Request, Response } from 'express'; import cors from 'cors'; // Import the cors middleware import bodyParser from 'body-parser'; const app = express(); const port = process.env.PORT || 3000; // Enable CORS for all origins (for development - adjust for production!) app.use(cors()); // Parse JSON request bodies app.use(bodyParser.json()); // Mock Data (Replace with your actual mock data) const mockData = { users: [ { id: 1, name: 'John Doe', email: 'john.doe@example.com' }, { id: 2, name: 'Jane Smith', email: 'jane.smith@example.com' }, ], products: [ { id: 'p1', name: 'Awesome Widget', price: 29.99 }, { id: 'p2', name: 'Deluxe Gadget', price: 49.99 }, ], settings: { theme: 'dark', notificationsEnabled: true, }, }; // API Endpoints app.get('/api/users', (req: Request, res: Response) => { res.json(mockData.users); }); app.get('/api/users/:id', (req: Request, res: Response) => { const userId = parseInt(req.params.id); const user = mockData.users.find((u) => u.id === userId); if (user) { res.json(user); } else { res.status(404).json({ error: 'User not found' }); } }); app.get('/api/products', (req: Request, res: Response) => { res.json(mockData.products); }); app.get('/api/settings', (req: Request, res: Response) => { res.json(mockData.settings); }); app.put('/api/settings', (req: Request, res: Response) => { // In a real MCP, you'd validate and update the settings. // For this mock, we'll just echo back what we received. mockData.settings = req.body; // WARNING: No validation! res.json(mockData.settings); }); // Start the server app.listen(port, () => { console.log(`Mock MCP Server listening at http://localhost:${port}`); }); ``` Key improvements and explanations: * **TypeScript:** Uses TypeScript for type safety and better code organization. Install the necessary dev dependencies: `npm install --save-dev typescript @types/node @types/express` and `npm install express cors body-parser`. You'll also need to configure a `tsconfig.json` file (see below). * **Express:** Uses Express.js, a popular Node.js web framework, for routing and handling HTTP requests. * **CORS:** Includes `cors` middleware. **Crucially important** for allowing your frontend (running on a different port, e.g., `localhost:4200`) to access the API. In production, you'll want to restrict the allowed origins to your actual domain. * **Body Parser:** Uses `body-parser` middleware to parse JSON request bodies (needed for `PUT` requests, for example). * **Mock Data:** Provides a simple `mockData` object. This is where you'll define the data that your API endpoints will return. Replace this with your specific mock data. * **API Endpoints:** * `/api/users`: Returns a list of users. * `/api/users/:id`: Returns a specific user by ID. * `/api/products`: Returns a list of products. * `/api/settings`: Returns the settings. * `/api/settings` (PUT): Simulates updating settings. **Important:** This version *does not* validate the incoming data. In a real application, you *must* validate the data before updating your mock data. * **Error Handling:** Includes a basic 404 error for when a user is not found. * **Port Configuration:** Uses `process.env.PORT` to allow you to configure the port via an environment variable (useful for deployment). Defaults to 3000. * **Clear Comments:** Explains the purpose of each section of the code. **How to use it:** 1. **Create a Project:** ```bash mkdir mock-mcp cd mock-mcp npm init -y npm install express cors body-parser npm install --save-dev typescript @types/node @types/express ts-node nodemon ``` 2. **Create `server.ts`:** Copy and paste the code above into a file named `server.ts`. 3. **Create `tsconfig.json`:** This file tells the TypeScript compiler how to compile your code. A basic `tsconfig.json` looks like this: ```json { "compilerOptions": { "target": "es6", "module": "commonjs", "outDir": "./dist", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true, "resolveJsonModule": true }, "include": ["./server.ts"], "exclude": ["node_modules"] } ``` 4. **Add a `start` script to `package.json`:** This makes it easy to run your server. Add or modify the `scripts` section of your `package.json` to include: ```json "scripts": { "start": "node dist/server.js", "dev": "nodemon server.ts", "build": "tsc" } ``` 5. **Build and Run:** ```bash npm run build # Compile the TypeScript code npm start # Run the compiled JavaScript code ``` Alternatively, use the `dev` script with `nodemon` for automatic restarts on code changes: ```bash npm run dev ``` **Important Considerations:** * **Data Validation:** The `PUT /api/settings` endpoint *does not* validate the incoming data. This is a **critical security risk** in a real application. You should always validate data before using it. Libraries like `joi` or `yup` can help with this. * **Error Handling:** The error handling is very basic. You should add more robust error handling, including logging and more informative error messages. * **Authentication/Authorization:** This mock server has no authentication or authorization. In a real MCP, you would need to implement these to protect your data. * **Database:** This mock server uses in-memory data. For a more realistic MCP, you would likely use a database (e.g., MongoDB, PostgreSQL). * **Scalability:** This is a very simple server. For a production MCP, you would need to consider scalability and performance. * **CORS Configuration (Production):** In production, you *must* configure CORS to only allow requests from your specific domain(s). Do *not* use `cors({ origin: '*' })` in production. Instead, specify the allowed origins: ```typescript app.use(cors({ origin: 'https://your-frontend-domain.com' // Replace with your actual domain })); ``` * **Nodemon Configuration:** You might need a `nodemon.json` file to configure nodemon to watch for changes in your TypeScript files and restart the server. A basic `nodemon.json` would look like this: ```json { "watch": ["server.ts"], "ext": "ts", "exec": "ts-node ./server.ts" } ``` **Example `package.json` (after adding scripts):** ```json { "name": "mock-mcp", "version": "1.0.0", "description": "A mock MCP server", "main": "index.js", "scripts": { "start": "node dist/server.js", "dev": "nodemon server.ts", "build": "tsc" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "body-parser": "^1.20.4", "cors": "^2.8.5", "express": "^4.18.2" }, "devDependencies": { "@types/express": "^4.17.21", "@types/node": "^20.11.20", "nodemon": "^3.1.0", "ts-node": "^10.9.2", "typescript": "^5.4.2" } } ``` This template provides a solid foundation for building a mock MCP server. Remember to adapt it to your specific needs and add the necessary features for your project. Good luck! ```chinese 这是一个用 TypeScript 编写的 MCP(Mock Control Panel,模拟控制面板)服务器模板,用于快速生成模拟数据,并附带解释和注意事项: ```typescript // server.ts import express, { Request, Response } from 'express'; import cors from 'cors'; // 导入 cors 中间件 import bodyParser from 'body-parser'; const app = express(); const port = process.env.PORT || 3000; // 启用 CORS 以允许所有来源(用于开发 - 生产环境需要调整!) app.use(cors()); // 解析 JSON 请求体 app.use(bodyParser.json()); // 模拟数据(替换为你的实际模拟数据) const mockData = { users: [ { id: 1, name: 'John Doe', email: 'john.doe@example.com' }, { id: 2, name: 'Jane Smith', email: 'jane.smith@example.com' }, ], products: [ { id: 'p1', name: 'Awesome Widget', price: 29.99 }, { id: 'p2', name: 'Deluxe Gadget', price: 49.99 }, ], settings: { theme: 'dark', notificationsEnabled: true, }, }; // API 端点 app.get('/api/users', (req: Request, res: Response) => { res.json(mockData.users); }); app.get('/api/users/:id', (req: Request, res: Response) => { const userId = parseInt(req.params.id); const user = mockData.users.find((u) => u.id === userId); if (user) { res.json(user); } else { res.status(404).json({ error: 'User not found' }); } }); app.get('/api/products', (req: Request, res: Response) => { res.json(mockData.products); }); app.get('/api/settings', (req: Request, res: Response) => { res.json(mockData.settings); }); app.put('/api/settings', (req: Request, res: Response) => { // 在真实的 MCP 中,你需要验证和更新设置。 // 对于这个模拟,我们只是将收到的内容回显。 mockData.settings = req.body; // 警告:没有验证! res.json(mockData.settings); }); // 启动服务器 app.listen(port, () => { console.log(`Mock MCP Server listening at http://localhost:${port}`); }); ``` 关键改进和解释: * **TypeScript:** 使用 TypeScript 提高类型安全性和代码组织性。 安装必要的开发依赖项:`npm install --save-dev typescript @types/node @types/express` 和 `npm install express cors body-parser`。 你还需要配置一个 `tsconfig.json` 文件(见下文)。 * **Express:** 使用 Express.js,一个流行的 Node.js Web 框架,用于路由和处理 HTTP 请求。 * **CORS:** 包含 `cors` 中间件。 **至关重要**,用于允许你的前端(运行在不同的端口,例如 `localhost:4200`)访问 API。 在生产环境中,你需要将允许的来源限制为你的实际域名。 * **Body Parser:** 使用 `body-parser` 中间件来解析 JSON 请求体(例如,`PUT` 请求需要)。 * **模拟数据:** 提供一个简单的 `mockData` 对象。 你可以在这里定义你的 API 端点将返回的数据。 将其替换为你的特定模拟数据。 * **API 端点:** * `/api/users`: 返回用户列表。 * `/api/users/:id`: 返回指定 ID 的用户。 * `/api/products`: 返回产品列表。 * `/api/settings`: 返回设置。 * `/api/settings` (PUT): 模拟更新设置。 **重要提示:** 此版本*不*验证传入的数据。 在实际应用中,你*必须*在更新模拟数据之前验证数据。 * **错误处理:** 包含一个基本的 404 错误,用于在找不到用户时返回。 * **端口配置:** 使用 `process.env.PORT` 允许你通过环境变量配置端口(对部署很有用)。 默认为 3000。 * **清晰的注释:** 解释了代码每个部分的目的。 **如何使用它:** 1. **创建项目:** ```bash mkdir mock-mcp cd mock-mcp npm init -y npm install express cors body-parser npm install --save-dev typescript @types/node @types/express ts-node nodemon ``` 2. **创建 `server.ts`:** 将上面的代码复制并粘贴到名为 `server.ts` 的文件中。 3. **创建 `tsconfig.json`:** 此文件告诉 TypeScript 编译器如何编译你的代码。 一个基本的 `tsconfig.json` 如下所示: ```json { "compilerOptions": { "target": "es6", "module": "commonjs", "outDir": "./dist", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true, "resolveJsonModule": true }, "include": ["./server.ts"], "exclude": ["node_modules"] } ``` 4. **将 `start` 脚本添加到 `package.json`:** 这可以让你轻松运行服务器。 添加或修改 `package.json` 的 `scripts` 部分,使其包含: ```json "scripts": { "start": "node dist/server.js", "dev": "nodemon server.ts", "build": "tsc" } ``` 5. **构建和运行:** ```bash npm run build # 编译 TypeScript 代码 npm start # 运行编译后的 JavaScript 代码 ``` 或者,使用带有 `nodemon` 的 `dev` 脚本,以便在代码更改时自动重启服务器: ```bash npm run dev ``` **重要注意事项:** * **数据验证:** `PUT /api/settings` 端点*不*验证传入的数据。 在实际应用中,这是一个**严重的安全风险**。 你应该始终在使用数据之前验证数据。 诸如 `joi` 或 `yup` 之类的库可以帮助你完成此操作。 * **错误处理:** 错误处理非常基础。 你应该添加更强大的错误处理,包括日志记录和更具信息性的错误消息。 * **身份验证/授权:** 此模拟服务器没有身份验证或授权。 在真实的 MCP 中,你需要实现这些来保护你的数据。 * **数据库:** 此模拟服务器使用内存中的数据。 对于更真实的 MCP,你可能会使用数据库(例如,MongoDB、PostgreSQL)。 * **可扩展性:** 这是一个非常简单的服务器。 对于生产 MCP,你需要考虑可扩展性和性能。 * **CORS 配置(生产环境):** 在生产环境中,你*必须*配置 CORS 以仅允许来自你的特定域的请求。 *不要*在生产环境中使用 `cors({ origin: '*' })`。 而是指定允许的来源: ```typescript app.use(cors({ origin: 'https://your-frontend-domain.com' // 替换为你的实际域名 })); ``` * **Nodemon 配置:** 你可能需要一个 `nodemon.json` 文件来配置 nodemon 以监视 TypeScript 文件中的更改并重新启动服务器。 一个基本的 `nodemon.json` 如下所示: ```json { "watch": ["server.ts"], "ext": "ts", "exec": "ts-node ./server.ts" } ``` **示例 `package.json`(添加脚本后):** ```json { "name": "mock-mcp", "version": "1.0.0", "description": "A mock MCP server", "main": "index.js", "scripts": { "start": "node dist/server.js", "dev": "nodemon server.ts", "build": "tsc" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "body-parser": "^1.20.4", "cors": "^2.8.5", "express": "^4.18.2" }, "devDependencies": { "@types/express": "^4.17.21", "@types/node": "^20.11.20", "nodemon": "^3.1.0", "ts-node": "^10.9.2", "typescript": "^5.4.2" } } ``` 此模板为构建模拟 MCP 服务器提供了坚实的基础。 请记住根据你的特定需求进行调整,并为你的项目添加必要的功能。 祝你好运! ```

Node.js JDBC MCP Server

Node.js JDBC MCP Server

Acknowledgments

Acknowledgments

镜子 (jìng zi)

Hyperliquid MCP Server v2

Hyperliquid MCP Server v2

用于 Hyperliquid 的模型上下文协议服务器,带有集成仪表板

Juhe Mcp Server

Juhe Mcp Server

Element MCP

Element MCP

MCP Chunk Editor

MCP Chunk Editor

一个 MCP 服务器,为 LLM 提供高效且安全的文本编辑器。 (Alternatively, depending on the specific context and target audience, you could also say:) 一个 MCP 服务器,为大型语言模型 (LLM) 提供高效且安全的文本编辑器。