使用说明
使用NodeJS创建MCP服务器(ai-agent-with-mcp)
该项目实现了一个AI代理,该代理使用模型上下文协议(MCP)与外部资源进行交互。
仓库包括:
功能强大的 MCP 服务器,具有用户和消息的 REST 功能。
通过协议消耗这些资源的 MCP 客户端。
如何通过终端、REST API 或直接在 Cursor 中访问资源的实际示例。
可用资源
MCP 服务器提供以下功能:
用户资源
- api://users列出系统中所有注册的用户
- 返回 ID、姓名、电话号码和线程 ID 等信息
- 格式:JSON
- 答案示例 :
{ "content": [ { "id": 1, "phoneNumber": "553496341404", "name": "Moisés Paschoalick", "threadId": "thread_bZEPVYVBvHxY9Ok6WqR63M2D" }, { "id": 2, "phoneNumber": "553496338888", "name": "José Silva", "threadId": "1thread_t8SFjKio6yN9pppqypilwGoR__" }, { "id": 3, "phoneNumber": "553496338889", "name": "Maria Antonia", "threadId": "1thread_t8SFjKio6yN9pppqypilwGoR__" } ], "pageable": { "pageNumber": 0, "pageSize": 12, "sort": { "empty": false, "sorted": true, "unsorted": false }, "offset": 0, "paged": true, "unpaged": false }, "last": true, "totalPages": 1, "totalElements": 3, "first": true, "size": 12, "number": 0, "sort": { "empty": false, "sorted": true, "unsorted": false }, "numberOfElements": 3, "empty": false }
消息资源
- hello://world返回简单的问候消息
- 格式:texto plano(文本/纯文本)
- Exemplo de resposta:“你好,世界!这是我的第一个MCP资源。”
Cursor 安装
首先,请确保您在系统上安装了光标并配置了npm。
选项1:通过终端安装
在终端中运行以下命令 :
npx -y @smithery/cli@latest install @wonderwhy-er/desktop-commander --client cursor --key dda23bec-caa6-4487-a1e9-eb74e22e33eb
注意:上面提到的关键只是为了示例,您需要添加自己的。
如果游标正在运行, 请重新启动 。
选项2:手动安装
将相应条目添加到您的 mcp.json 文件:
Mac/Linux:
没有Linux: ~/.config/cursor.json
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@wonderwhy-er/desktop-commander",
"--key",
"dda23bec-caa6-4487-a1e9-eb74e22e33eb"
]
}
}
}
窗户旁:
{
"mcpServers": {
"desktop-commander": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@smithery/cli@latest",
"run",
"@wonderwhy-er/desktop-commander",
"--key",
"dda23bec-caa6-4487-a1e9-eb74e22e33eb"
]
}
}
}
如果游标正在运行, 请重新启动 。
选项 3:本地克隆
克隆和构建:
git clone https://github.com/moises-paschoalick/ai-agent-with-mcp.git
cd ai-agent-with-mcp
npm run setup
如果游标正在运行, 请重新启动 。
配置命令将 :
- 安装依赖关系
- 构建服务器
- 配置光标
- 必要时将 MCP 服务器添加到光标配置
如何使用
MCP 客户端
该项目包括一个MCP客户端,可用于访问可用资源:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
async function main() {
const client = new Client({
name: "hello-mcp-client",
version: "1.0.0"
});
const transport = new StdioClientTransport({
command: "node",
args: ["build/index.js"]
});
try {
await client.connect(transport);
// Listar recursos disponíveis
const resources = await client.listResources();
console.log("Recursos disponíveis:", resources);
// Ler o recurso de usuários
const content = await client.readResource({ uri: "api://users" });
console.log("\nLista de Usuários:", content);
} catch (error) {
console.error("Erro ao executar o cliente:", error);
}
}
main().catch(console.error);
API REST Direta
您也可以直接通过 REST API 访问资源:
# Listar todos os usuários
curl http://3.238.149.189:8080/users
安装和运行
# Instalar dependências
npm install
# Compilar o projeto
npm run build
# Executar o servidor
npm start
# Executar em modo de desenvolvimento
npm run dev
要求
- Node.js(与 AbortController 兼容的版本)
- TypeScript
- @模型上下文协议/sdk