mcp-pokeapi-server

mcp-pokeapi-server

0

The project is a server that interacts with the POKEAPI to retrieve Pokémon information using the Model Context Protocol (MCP). It provides tools for applications and clients to easily fetch Pokémon data, ensuring compatibility with JSON-RPC standards.

mcp-pokeapi-server

POKEAPI と連携し、MCP(Model Context Protocol)仕様でポケモン情報を取得できるサーバーです。

概要

  • MCP プロトコル(JSON-RPC 2.0 over stdio)で、LLM アプリや MCP クライアントからポケモン情報取得ツールを提供します。
  • POKEAPI(https://pokeapi.co/)を利用。
  • スキーマバリデーションにはzodを使用。

セットアップ

npm install

ビルド

npx tsc

開発用起動(ts-node)

npx ts-node src/index.ts

MCP クライアントからの利用例

MCP クライアントや LLM アプリから、標準入力/出力で JSON-RPC リクエストを送信します。

1. ツール一覧取得(list_tools)

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "list_tools"
}
レスポンス例
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "getPokemonInfo",
        "description": "ポケモン名またはIDから、POKEAPIでポケモン情報を取得します。",
        "input_schema": { ... },
        "output_schema": { ... }
      }
    ]
  }
}

2. ポケモン情報取得(call_tool)

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "call_tool",
  "params": {
    "name": "getPokemonInfo",
    "arguments": {
      "nameOrId": "pikachu"
    }
  }
}
レスポンス例
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "json",
        "data": {
          "name": "pikachu",
          "id": 25,
          "height": 4,
          "weight": 60,
          "types": ["electric"]
        }
      }
    ]
  }
}

テスト

npm test

参考