Alexander Payne
56437751d3
Phase 4: Tool Registry Auto-Discovery
- @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
2026-02-25 19:59:42 -05:00
..
2026-02-24 16:48:14 +00:00
2026-02-25 07:57:28 -05:00
2026-02-19 19:05:01 +00:00
2026-02-25 07:57:28 -05:00
2026-02-24 23:36:50 +00:00
2026-02-21 12:57:38 -05:00
2026-02-25 18:17:43 -05:00
2026-02-22 14:04:20 +00:00
2026-02-24 16:48:14 +00:00
2026-02-24 16:31:47 +00:00
2026-02-21 16:53:16 +00:00
2026-02-22 14:04:20 +00:00
2026-02-25 01:11:14 +00:00
2026-02-24 18:29:21 +00:00
2026-02-24 18:29:21 +00:00
2026-02-24 16:31:47 +00:00
2026-02-24 16:31:47 +00:00
2026-02-24 16:31:47 +00:00
2026-02-22 16:21:32 -05:00
2026-02-25 01:11:14 +00:00
2026-02-22 19:01:04 -05:00
2026-02-24 23:36:50 +00:00
2026-02-24 16:31:47 +00:00
2026-02-24 16:31:47 +00:00
2026-02-21 12:57:38 -05:00
2026-02-21 12:57:38 -05:00
2026-02-22 22:04:37 +00:00
2026-02-22 20:20:11 -05:00
2026-02-24 23:36:50 +00:00
2026-02-25 19:59:42 -05:00
2026-02-25 19:59:42 -05:00
2026-02-22 20:48:14 -05:00
2026-02-22 16:21:32 -05:00
2026-02-24 16:31:47 +00:00
2026-02-24 16:48:14 +00:00
2026-02-21 12:57:38 -05:00
2026-02-19 19:05:01 +00:00
2026-02-25 19:43:43 -05:00
2026-02-25 19:43:43 -05:00
2026-02-24 23:36:50 +00:00
2026-02-25 18:07:44 -05:00
2026-02-24 12:58:19 -05:00
2026-02-25 17:23:47 -05:00
2026-02-21 12:57:38 -05:00
2026-02-24 16:31:47 +00:00
2026-02-24 15:51:15 +00:00
2026-02-25 17:28:41 -05:00
2026-02-24 18:29:21 +00:00
2026-02-24 22:25:04 +00:00
2026-02-21 12:57:38 -05:00
2026-02-24 16:31:47 +00:00
2026-02-22 16:21:32 -05:00
2026-02-25 07:20:56 -05:00
2026-02-22 20:20:11 -05:00
2026-02-22 12:21:50 +00:00
2026-02-21 12:57:38 -05:00
2026-02-22 17:16:12 +00:00
2026-02-24 17:18:29 +00:00
2026-02-22 19:01:04 -05:00
2026-02-24 23:36:50 +00:00
2026-02-22 20:33:26 -05:00
2026-02-24 16:31:47 +00:00
2026-02-21 13:45:24 -05:00
2026-02-21 12:57:38 -05:00
2026-02-24 23:36:50 +00:00
2026-02-24 23:36:50 +00:00
2026-02-21 16:36:56 +00:00
2026-02-25 07:57:28 -05:00
2026-02-25 07:57:28 -05:00
2026-02-25 02:08:02 -05:00