Membangun Klien MCP Khusus
Hubungkan ke Synapse MCP server dari aplikasi Anda sendiri menggunakan MCP SDK.
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
npm install @modelcontextprotocol/sdkHubungkan via stdio
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)
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 aboveContoh Python
Pasang
pip install mcpHubungkan via stdio
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):
// 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
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