forked from Rockachopa/Timmy-time-dashboard
- @mcp_tool decorator for marking functions as tools - ToolDiscovery class for introspecting modules and packages - Automatic JSON schema generation from type hints - AST-based discovery for files (without importing) - Auto-bootstrap on startup (packages=['tools'] by default) - Support for tags, categories, and metadata - Updated registry with register_tool() convenience method - Environment variable MCP_AUTO_BOOTSTRAP to disable - 39 tests with proper isolation and cleanup Files Added: - src/mcp/discovery.py: Tool discovery and introspection - src/mcp/bootstrap.py: Auto-bootstrap functionality - tests/test_mcp_discovery.py: 26 tests - tests/test_mcp_bootstrap.py: 13 tests Files Modified: - src/mcp/registry.py: Added tags, source_module, auto_discovered fields - src/mcp/__init__.py: Export discovery and bootstrap modules - src/dashboard/app.py: Auto-bootstrap on startup
31 lines
763 B
Python
31 lines
763 B
Python
"""MCP (Model Context Protocol) package.
|
|
|
|
Provides tool registry, server, schema management, and auto-discovery.
|
|
"""
|
|
|
|
from mcp.registry import tool_registry, register_tool, ToolRegistry
|
|
from mcp.server import mcp_server, MCPServer, MCPHTTPServer
|
|
from mcp.schemas.base import create_tool_schema
|
|
from mcp.discovery import ToolDiscovery, mcp_tool, get_discovery
|
|
from mcp.bootstrap import auto_bootstrap, get_bootstrap_status
|
|
|
|
__all__ = [
|
|
# Registry
|
|
"tool_registry",
|
|
"register_tool",
|
|
"ToolRegistry",
|
|
# Server
|
|
"mcp_server",
|
|
"MCPServer",
|
|
"MCPHTTPServer",
|
|
# Schemas
|
|
"create_tool_schema",
|
|
# Discovery
|
|
"ToolDiscovery",
|
|
"mcp_tool",
|
|
"get_discovery",
|
|
# Bootstrap
|
|
"auto_bootstrap",
|
|
"get_bootstrap_status",
|
|
]
|