FastAPI-MCP增强工具

FastAPI-MCP的增强版本,提供端点分析、智能路由和转换基准测试功能。

  • by Rlin1027
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Rlin1027/fastapi-mcp-enhanced

使用说明

fastapi mcp增强

增强版 fastapi mcp (FastAPI到MCP服务器网桥,11.5k+星),具有端点分析、智能路由和转换基准测试。

保留所有原始fastapi mcp文件 未触及的。增强功能作为单独的功能添加 fastapi_mcp_enhanced 包裹。

增强模块

1.终点分析(analysis.py)

用于分析OpenAPI模式和评估MCP工具转换质量的综合工具包。

from fastapi_mcp_enhanced import SchemaAnalyzer, ToolQualityAnalyzer, AuthAnalyzer

# Analyze an OpenAPI schema
analyzer = SchemaAnalyzer(openapi_schema)
summary = analyzer.summarize()
# {'total_endpoints': 12, 'methods': {'GET': 5, 'POST': 4, ...}, 'crud_coverage': 0.75}

complexity = analyzer.endpoint_complexity("/users/{id}", "get")
# {'path_params': 1, 'query_params': 0, 'has_body': False, 'score': 2}

crud = analyzer.crud_analysis()
# {'resources': {'users': {'create': True, 'read': True, 'update': True, 'delete': False}}}

# Evaluate MCP tool quality
quality = ToolQualityAnalyzer(openapi_schema)
report = quality.full_report()
# {'name_quality': 0.9, 'description_quality': 0.85, 'schema_quality': 0.92, ...}

# Analyze auth configuration
auth = AuthAnalyzer(openapi_schema)
schemes = auth.detect_security_schemes()
coverage = auth.auth_coverage()
recommendations = auth.recommendations()

课程: EndpointSpec, SchemaAnalyzer, ToolQualityAnalyzer, AuthAnalyzer, ConversionAnalyzer

2.智能路由(routing.py)

FastApiMCP的智能端点过滤、分组和配置生成。

from fastapi_mcp_enhanced import EndpointFilter, ToolGrouper, ConfigGenerator, RoutingAnalyzer

# Filter endpoints by tags, methods, or patterns
f = EndpointFilter(openapi_schema)
crud_only = f.filter_by_methods(["get", "post", "put", "delete"])
admin_endpoints = f.filter_by_tags(["admin"])
user_endpoints = f.filter_by_pattern("/users/*")

# Group tools for organized exposure
grouper = ToolGrouper(openapi_schema)
by_tag = grouper.group_by_tag()
by_resource = grouper.group_by_resource()
namespaces = grouper.suggest_namespaces()

# Generate FastApiMCP configurations
gen = ConfigGenerator(openapi_schema)
config = gen.generate_config(include_tags=["public"], exclude_methods=["delete"])
code = gen.format_as_python(config)
# Outputs ready-to-use FastApiMCP(...) Python code

# Analyze routing quality
ra = RoutingAnalyzer(openapi_schema)
coverage = ra.coverage_analysis(include_operations=["getUsers", "createUser"])
conflicts = ra.detect_conflicts()
suggestions = ra.improvement_suggestions()

课程: EndpointFilter, ToolGrouper, EndpointPrioritizer, ConfigGenerator, RoutingAnalyzer

3.转换基准(benchmark.py)

在不运行实际MCP服务器的情况下估计和比较转换指标。

from fastapi_mcp_enhanced import SchemaMetrics, ComplexityEstimator, TransportComparator

# Measure schema metrics
metrics = SchemaMetrics(openapi_schema)
stats = metrics.summary()
# {'endpoints': 15, 'parameters': 42, 'schemas': 8, 'estimated_tools': 15}

filtered = metrics.estimate_tool_count(include_tags=["public"])
param_stats = metrics.parameter_statistics()

# Estimate endpoint complexity
estimator = ComplexityEstimator(openapi_schema)
scores = estimator.all_complexities()
# {'/users': 3.2, '/users/{id}/orders': 6.8, ...}

ranking = estimator.complexity_ranking()
hotspots = estimator.identify_hotspots(threshold=7.0)

# Compare SSE vs HTTP transports
comparator = TransportComparator()
comparison = comparator.compare()
recommendation = comparator.recommend(use_case="production")

# Full conversion benchmark
from fastapi_mcp_enhanced import ConversionBenchmark, ToolSizeEstimator
bench = ConversionBenchmark(openapi_schema)
report = bench.full_report()
strategies = bench.compare_filter_strategies()

# Check MCP tool size limits
sizer = ToolSizeEstimator(openapi_schema)
sizes = sizer.estimate_total_tools_size()
limits = sizer.check_limits(max_tools=50, max_total_size_kb=512)
optimizations = sizer.optimize_for_limits(max_total_size_kb=256)

课程: SchemaMetrics, ComplexityEstimator, TransportComparator, ConversionBenchmark, ToolSizeEstimator

安装

git clone https://github.com/Rlin1027/fastapi-mcp-enhanced.git
cd fastapi-mcp-enhanced
pip install -e .  # Install original fastapi-mcp

这 fastapi_mcp_enhanced 该软件包可以独立工作,不需要运行MCP服务器进行分析、路由或基准测试。

测试

python3 -m pytest tests/test_analysis.py tests/test_routing.py tests/test_benchmark.py -v

104个测试,涵盖所有3个增强模块。

许可证

麻省理工学院——与最初的fastapi-mcp项目相同。

积分

原始项目: tadata组织/fastapi_mcp