JUHE API Marketplace
icck avatar
MCP Server

Toy MCP Server

A simple MCP server that provides two tools: one for counting specific letter occurrences within words and another for generating UUIDv7s.

0
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

Toy

概要

FastMCPを利用した、単語内の特定文字の出現回数をカウントするツールと、UUIDv7を生成するツールを提供するシンプルなMCPサーバーです。 count_letters ツールは、大文字・小文字を区別せずに文字をカウントします。

提供ツール

count_letters

  • 機能: 指定された単語 (word) の中に、指定された文字 (letter) が何回出現するかを返します。
  • 入力:
    • word (文字列): カウント対象の単語。
    • letter (文字列): カウントする文字。
  • 出力:
    • result (数値): 文字の出現回数。

リクエスト例 (MCPクライアントから送信される想定):

{
  "tool_name": "count_letters",
  "tool_args": {
    "word": "Programming",
    "letter": "m"
  }
}

レスポンス例 (MCPサーバーから返される想定):

{
  "result": 2
}

generate_uuid7s

  • 機能: 指定された数のUUIDv7を生成します。デフォルトは1つです。
  • 入力:
    • count (数値, オプション): 生成するUUIDの数。デフォルトは1。1以上の整数である必要があります。
  • 出力:
    • result (文字列のリスト): 生成されたUUIDv7のリスト。

リクエスト例 (MCPクライアントから送信される想定):

{
  "tool_name": "generate_uuid7s",
  "tool_args": {
    "count": 3
  }
}

レスポンス例 (MCPサーバーから返される想定):

{
  "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 が仮想環境を作成(存在しない場合)し、依存関係を同期します。
    uv sync
    

使用方法

このMCPサーバー (server.py) は、標準入出力(stdio)を介してMCPクライアントと通信します。

サーバーを起動するには、プロジェクトのルートディレクトリで以下のコマンドを実行します。

uv run python server.py

または、仮想環境を有効化 (source .venv/bin/activate) している場合は、以下でも起動できます。

python server.py

起動後、MCPクライアントは上記「提供ツール」セクションに記載されたJSON形式でリクエストを標準入力に送信し、結果を標準出力から受け取ります。

Cursor / Windsurf での使用方法

Cursor / Windsurf の設定ファイル (mcp_config.json など) に以下のように追記することで、このMCPサーバーを利用できます。

{
  "mcpServers": {
    "letter-counter": {
      "command": "uv",
      "args": [
        "--directory",
        "<your_project_directory>",
        "run",
        "server.py"
      ]
    }
  }
}

注意: args 内の --directory のパスは、この README.md があるディレクトリ (プロジェクトのルートディレクトリ) を指すように、ご自身の環境に合わせて適宜修正してください。

開発コマンド (Makefile)

プロジェクトのルートディレクトリで以下の make コマンドを実行できます。

  • フォーマットと静的解析、テストの実行:

    make test
    

    このコマンドは、Ruffによるコードフォーマットとチェック、Mypyによる型チェック、Pytestによる単体テスト(カバレッジレポート生成を含む)を一括で実行します。

  • コードフォーマットとチェック:

    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

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source