Skip to main content
Glama
ynu

MCP-YNU FastMCP Server

Official
by ynu

MCP-YNU - FastMCP サーバー

各ディレクトリからツール、リソース、プロンプトを自動的に読み込む FastMCP を使用した動的 MCP サーバー実装。

特徴

  • tools/resources/prompts/ディレクトリからのモジュールの動的ロード

  • モジュールの自動検出と登録

  • シンプルな構成と拡張性

  • コードの明確さと静的解析を向上させる型ヒント

  • サーバーアクティビティを監視するための包括的なログ記録

Related MCP server: MCP Remote Server

最近の更新

  • コードベース全体に型ヒントを追加しました

  • MCPインスタンス処理の改善

  • ログ機能の追加

  • MITライセンスを追加

  • 参照リンクを含むドキュメントを更新しました

ディレクトリ構造

mcp-ynu/
├── tools/          # Directory for tool modules
│   ├── __init__.py
│   ├── example.py
├── resources/      # Directory for resource modules
│   ├── __init__.py
│   ├── example.py
├── prompts/        # Directory for prompt modules
│   ├── __init__.py
│   ├── example.py
├── logger.py       # Logger implementation
├── main.py         # Main implementation
├── mcp_server.py   # MCP server implementation
├── README.md       # Project documentation
├── LICENSE         # MIT License
└── pyproject.toml  # Project configuration

使用法

  1. 適切なディレクトリにモジュールを作成する

  2. from mcp_server import mcp経由で mcp をインポートします。

  3. サーバーを実行します。

python main.py

サンプルモジュール

ツールモジュールの例 (tools/example.py)

from mcp_server import mcp
import httpx

@mcp.tool()
def calculate_bmi(weight_kg: float, height_m: float) -> float:
    """Calculate BMI given weight in kg and height in meters"""
    return weight_kg / (height_m**2)


@mcp.tool()
async def fetch_weather(city: str) -> str:
    """Fetch current weather for a city"""
    async with httpx.AsyncClient() as client:
        response = await client.get(f"https://api.weather.com/{city}")
        return response.text

リソースモジュールの例 (resources/example.py)

from mcp_server import mcp

@mcp.resource("config://app")
def get_config() -> str:
    """Static configuration data"""
    return "App configuration here"


@mcp.resource("users://{user_id}/profile")
def get_user_profile(user_id: str) -> str:
    """Dynamic user data"""
    return f"Profile data for user {user_id}"

プロンプトモジュールの例 (prompts/example.py)

from mcp_server import mcp
from mcp.server.fastmcp.prompts import base

@mcp.prompt()
def review_code(code: str) -> str:
    return f"Please review this code:\n\n{code}"


@mcp.prompt()
def debug_error(error: str) -> list[base.Message]:
    return [
        base.UserMessage("I'm seeing this error:"),
        base.UserMessage(error),
        base.AssistantMessage("I'll help debug that. What have you tried so far?"),
    ]

デバッグ

  1. .envMCP_TRANSPORT_TYPEを更新し、 python main.pyを実行して mcp サーバーを起動します。

  2. npx @modelcontextprotocol/inspectorを実行してinspectを開きます。

  3. URL http://localhost:<mcp_server_port>/sseSSEトランスポート タイプを選択するか、コマンドpythonと引数/path/to/main.pySTDIOトランスポート タイプを選択します。

@modelcontextprotocol/インスペクター

要件

  • Python >= 3.10

  • ファストMCP

参考リンク

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/ynu/mcp-ynu'

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