MCP で Todoist にタスクを登録する

llmproductivity

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から作成できることが確認できた。