返回市场
自动注册mcp

自动注册mcp

作者:JoshuaSiraj9 星标更新:2025-04-02

项目介绍

MCP 自动注册

此包实现了从Python包中自动注册函数和类到FastMCP实例的功能。

安装

要安装该包,请运行以下命令:

pip install mcp-auto-register

使用

从一个包中注册函数:

from mcp_auto_register.register import register_functions_from_package
from mcp.server.fastmcp import FastMCP

# 初始化MCP实例
mcp_instance = FastMCP()

register_functions_from_package('scipy.linalg', mcp_instance=mcp_instance, func_filter=['eigh', 'inv'])

if __name__ == "__main__":
    mcp_instance.run()

从一个包中注册类:

import inspect

from mcp_auto_register.register import register_classes_from_package
from mcp.server.fastmcp import FastMCP

from nba_api.stats.endpoints._base import Endpoint

# 创建MCP实例
mcp = FastMCP()

def nba_endpoint_wrapper(endpoint: Endpoint):
    init_params = inspect.signature(endpoint.__init__).parameters
    required_args = {
        p: param.annotation if param.annotation != inspect.Parameter.empty else "Any"
        for p, param in init_params.items()
        if p != "self" and param.default == inspect.Parameter.empty
    }
    def wrapper(**kwargs):
        return endpoint(**kwargs).get_dict()
    
    wrapper.__signature__ = inspect.Signature(
        parameters=[
            inspect.Parameter(arg, inspect.Parameter.POSITIONAL_OR_KEYWORD)
            for arg, _ in required_args.items()
        ]
    )
    return wrapper

register_classes_from_package("nba_api.stats.endpoints", nba_endpoint_wrapper, m
cp)

if __name__ == "__main__":
    mcp.run(transport="stdio")