Skip to main content
Glama

Toy MCP Server

by icck
README.md5.01 kB
# Toy ## 概要 FastMCPを利用した、単語内の特定文字の出現回数をカウントするツールと、UUIDv7を生成するツールを提供するシンプルなMCPサーバーです。 `count_letters` ツールは、大文字・小文字を区別せずに文字をカウントします。 ## 提供ツール ### `count_letters` - **機能:** 指定された単語 (`word`) の中に、指定された文字 (`letter`) が何回出現するかを返します。 - **入力:** - `word` (文字列): カウント対象の単語。 - `letter` (文字列): カウントする文字。 - **出力:** - `result` (数値): 文字の出現回数。 #### リクエスト例 (MCPクライアントから送信される想定): ```json { "tool_name": "count_letters", "tool_args": { "word": "Programming", "letter": "m" } } ``` #### レスポンス例 (MCPサーバーから返される想定): ```json { "result": 2 } ``` ### `generate_uuid7s` - **機能:** 指定された数のUUIDv7を生成します。デフォルトは1つです。 - **入力:** - `count` (数値, オプション): 生成するUUIDの数。デフォルトは1。1以上の整数である必要があります。 - **出力:** - `result` (文字列のリスト): 生成されたUUIDv7のリスト。 #### リクエスト例 (MCPクライアントから送信される想定): ```json { "tool_name": "generate_uuid7s", "tool_args": { "count": 3 } } ``` #### レスポンス例 (MCPサーバーから返される想定): ```json { "result": [ "018fa9e7-7d8a-7b9c-8000-000000000001", "018fa9e7-7d8a-7b9c-8000-000000000002", "018fa9e7-7d8a-7b9c-8000-000000000003" ] } ``` ## セットアップ ### 前提条件 - Python 3.13.1 - Make - uv (Pythonパッケージ管理ツール) ### 手順 1. 仮想環境の作成と依存関係のインストール: `pyproject.toml` にプロジェクトの依存関係が定義されています。以下のコマンドを実行すると、`uv` が仮想環境を作成(存在しない場合)し、依存関係を同期します。 ```bash uv sync ``` ## 使用方法 このMCPサーバー (`server.py`) は、標準入出力(stdio)を介してMCPクライアントと通信します。 サーバーを起動するには、プロジェクトのルートディレクトリで以下のコマンドを実行します。 ```bash uv run python server.py ``` または、仮想環境を有効化 (`source .venv/bin/activate`) している場合は、以下でも起動できます。 ```bash python server.py ``` 起動後、MCPクライアントは上記「提供ツール」セクションに記載されたJSON形式でリクエストを標準入力に送信し、結果を標準出力から受け取ります。 ## Cursor / Windsurf での使用方法 Cursor / Windsurf の設定ファイル (`mcp_config.json` など) に以下のように追記することで、このMCPサーバーを利用できます。 ```json { "mcpServers": { "letter-counter": { "command": "uv", "args": [ "--directory", "<your_project_directory>", "run", "server.py" ] } } } ``` *注意: `args` 内の `--directory` のパスは、この `README.md` があるディレクトリ (プロジェクトのルートディレクトリ) を指すように、ご自身の環境に合わせて適宜修正してください。* ## 開発コマンド (Makefile) プロジェクトのルートディレクトリで以下の `make` コマンドを実行できます。 - **フォーマットと静的解析、テストの実行:** ```bash make test ``` このコマンドは、Ruffによるコードフォーマットとチェック、Mypyによる型チェック、Pytestによる単体テスト(カバレッジレポート生成を含む)を一括で実行します。 - **コードフォーマットとチェック:** ```bash make format ``` このコマンドは、Ruffを使用してコードのフォーマットとチェック(自動修正含む)を実行します。 ## ディレクトリ構成 ``` . ├── .venv/ # 仮想環境 ├── htmlcov/ # カバレッジレポート (pytest実行後に生成) ├── tests/ │ ├── __init__.py │ ├── test_count_letters.py # count_lettersツールのテスト │ └── test_generate_uuid7s.py # generate_uuid7sツールのテスト ├── tools/ │ ├── __init__.py │ ├── count_letters_tool.py # count_lettersツールの実装 │ └── generate_uuid_tool.py # generate_uuid7sツールの実装 ├── pyproject.toml # プロジェクト設定と依存関係 ├── server.py # メインのサーバーアプリケーション ├── Makefile # 開発用コマンド定義 └── README.md ```

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/icck/toy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server