# Xây dựng Client MCP tùy chỉnh Nếu bạn đang xây dựng ứng dụng LLM riêng, bạn có thể kết nối đến Synapse MCP server trực tiếp sử dụng MCP SDK chính thức. Điều này cho phép ứng dụng của bạn truy cập tất cả 79 công cụ Synapse. ## SDK | Ngôn ngữ | Gói | |----------|---------| | TypeScript/JavaScript | `@modelcontextprotocol/sdk` | | Python | `mcp` | ## Ví dụ TypeScript ### Cài đặt ```bash npm install @modelcontextprotocol/sdk ``` ### Kết nối qua stdio ```typescript import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; const transport = new StdioClientTransport({ command: "npx", args: ["-y", "synapse-mcp-api@latest"], env: { SYNAPSE_MIND_KEY: process.env.SYNAPSE_MIND_KEY!, SYNAPSE_URL: "https://synapse.schaefer.zone", }, }); const client = new Client( { name: "my-app", version: "1.0.0" }, { capabilities: {} } ); await client.connect(transport); // List all available tools const { tools } = await client.listTools(); console.log(`Available tools: ${tools.length}`); for (const tool of tools) { console.log(`- ${tool.name}: ${tool.description}`); } // Call a tool const result = await client.callTool({ name: "memory_recall", arguments: {}, }); console.log(result.content); // Store a memory await client.callTool({ name: "memory_store", arguments: { category: "fact", key: "custom_client_test", content: "Built a custom MCP client", tags: ["test", "mcp"], priority: "normal", }, }); await client.close(); ``` ### Kết nối qua HTTP/SSE (từ xa) ```typescript import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js"; const transport = new SSEClientTransport( new URL("https://synapse-mcp.schaefer.zone/sse"), { requestInit: { headers: { Authorization: `Bearer ${process.env.SYNAPSE_MIND_KEY}`, }, }, } ); const client = new Client( { name: "my-app", version: "1.0.0" }, { capabilities: {} } ); await client.connect(transport); // ... use as above ``` ## Ví dụ Python ### Cài đặt ```bash pip install mcp ``` ### Kết nối qua stdio ```python from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client server_params = StdioServerParameters( command="npx", args=["-y", "synapse-mcp-api@latest"], env={ "SYNAPSE_MIND_KEY": "mk_YOUR_KEY", "SYNAPSE_URL": "https://synapse.schaefer.zone", }, ) async with stdio_client(server_params) as (read, write): async with ClientSession(read, write) as session: await session.initialize() # List tools tools = await session.list_tools() print(f"Available tools: {len(tools.tools)}") # Call a tool result = await session.call_tool("memory_recall", {}) print(result.content) # Store a memory await session.call_tool("memory_store", { "category": "fact", "key": "python_client_test", "content": "Built a Python MCP client", "tags": ["test", "mcp", "python"], "priority": "normal", }) ``` ## Tool Profile Khi kết nối, bạn có thể yêu cầu tool profile cụ thể qua header `Mcp-Tool-Profile` (HTTP/SSE) hoặc biến môi trường `MCP_PROFILE` (stdio): ```typescript // stdio: set env var env: { SYNAPSE_MIND_KEY: "mk_...", MCP_PROFILE: "minimal", // 8 tools instead of 119 } // HTTP/SSE: set header requestInit: { headers: { Authorization: "Bearer mk_...", "Mcp-Tool-Profile": "minimal", }, } ``` ## Xử lý lỗi ```typescript try { const result = await client.callTool({ name: "memory_recall", arguments: {} }); if (result.isError) { console.error("Tool error:", result.content); } else { console.log("Success:", result.content); } } catch (err) { console.error("MCP error:", err); } ``` ## Trường hợp sử dụng - **Trợ lý AI tùy chỉnh** — xây dựng agent riêng của bạn với bộ nhớ cố định - **Tự động hóa quy trình** — xâu chuỗi công cụ Synapse trong quy trình tùy chỉnh - **Pipeline dữ liệu** — trích xuất bộ nhớ, biến đổi, tải nơi khác - **Bảng điều khiển giám sát** — hiển thị thống kê bộ nhớ, lịch sử chat, tác vụ ## Bước tiếp theo - [Đặc tả MCP](https://spec.modelcontextprotocol.io) - [Synapse MCP Repo](https://gitlab.com/schaefer-services/synapse-mcp) - [Tổng quan API](/docs/api/overview)