# Membangun Klien MCP Khusus Jika Anda membangun aplikasi LLM Anda sendiri, Anda dapat terhubung ke Synapse MCP server langsung menggunakan SDK MCP resmi. Ini memberikan aplikasi Anda akses ke semua 79 alat Synapse. ## SDK | Bahasa | Paket | |----------|---------| | TypeScript/JavaScript | `@modelcontextprotocol/sdk` | | Python | `mcp` | ## Contoh TypeScript ### Pasang ```bash npm install @modelcontextprotocol/sdk ``` ### Hubungkan via 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(); ``` ### Hubungkan via HTTP/SSE (remote) ```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 ``` ## Contoh Python ### Pasang ```bash pip install mcp ``` ### Hubungkan via 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 Profiles Saat menghubungkan, Anda dapat meminta tool profile spesifik melalui header `Mcp-Tool-Profile` (HTTP/SSE) atau env var `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", }, } ``` ## Penanganan Error ```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); } ``` ## Kasus Penggunaan - **Asisten AI khusus** — bangun agen Anda sendiri dengan memori persisten - **Otomasi alur kerja** — rangkai alat Synapse dalam alur kerja khusus - **Pipeline data** — ekstrak memori, transformasi, muat di tempat lain - **Dashboard pemantauan** — tampilkan statistik memori, riwayat chat, tugas ## Langkah Berikutnya - [Spesifikasi MCP](https://spec.modelcontextprotocol.io) - [Repo Synapse MCP](https://gitlab.com/schaefer-services/synapse-mcp) - [Ikhtisar API](/docs/api/overview)