MCP (Model Context Protocol) は Function calling をセッションや認証、リソースの subscribe などを含めて標準化したプロトコル。
Langchain の SQL Database Toolkits の AgentExecutor で自然言語からSQLを生成しデータベースにアクセスする - sambaiz-net
const server = new Server({
name: "example-server",
version: "1.0.0"
}, {
capabilities: {
tools: {}
}
});
// Define available tools
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [{
name: "calculate_sum",
description: "Add two numbers together",
inputSchema: {
type: "object",
properties: {
a: { type: "number" },
b: { type: "number" }
},
required: ["a", "b"]
}
}]
};
});
// Handle tool execution
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "calculate_sum") {
const { a, b } = request.params.arguments;
return {
content: [
{
type: "text",
text: String(a + b)
}
]
};
}
throw new Error("Tool not found");
});
まだまだ対応しているサービスも少ないが、多くの非公式な MCP Server が有志によって開発されている。今回使うのも非公式のもの。公式の TypeScript クライアントを呼び出す薄いラッパーになっている。
これを Cursor から呼び出す。これに限った話ではないがセキュリティには注意したい。
{
"mcpServers": {
"todoist": {
"command": "npx",
"args": ["-y", "@abhiz123/todoist-mcp-server"],
"env": {
"TODOIST_API_TOKEN": "your_api_token_here"
}
}
}
}
再起動してAgentから作成できることが確認できた。