diff --git a/ROADMAP.md b/ROADMAP.md index 5018a73..ce67bcb 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -125,6 +125,10 @@ Successfully implemented vector search with local embeddings: - Reduces need to repeatedly fetch basic information - [ ] Create canonical response templates for common questions - [ ] Add version-specific context handling +- [ ] Add resource subscriptions for documentation/source updates + - Convert get_babylon_doc and get_babylon_source from tools to resources + - Implement file watching for repository changes + - Send resource update notifications to subscribed clients --- diff --git a/src/mcp/config.test.ts b/src/mcp/config.test.ts index 835de4c..b8376d0 100644 --- a/src/mcp/config.test.ts +++ b/src/mcp/config.test.ts @@ -31,7 +31,10 @@ describe('MCP_SERVER_CONFIG', () => { const tools = MCP_SERVER_CONFIG.capabilities.tools.available; expect(tools).toContain('search_babylon_docs'); expect(tools).toContain('get_babylon_doc'); - expect(tools.length).toBe(2); + expect(tools).toContain('search_babylon_api'); + expect(tools).toContain('search_babylon_source'); + expect(tools).toContain('get_babylon_source'); + expect(tools.length).toBe(5); }); it('should define prompts capability', () => { @@ -55,6 +58,9 @@ describe('MCP_SERVER_CONFIG', () => { const instructions = MCP_SERVER_CONFIG.instructions; expect(instructions).toContain('search_babylon_docs'); expect(instructions).toContain('get_babylon_doc'); + expect(instructions).toContain('search_babylon_api'); + expect(instructions).toContain('search_babylon_source'); + expect(instructions).toContain('get_babylon_source'); }); }); diff --git a/src/mcp/config.ts b/src/mcp/config.ts index b4a2659..9837729 100644 --- a/src/mcp/config.ts +++ b/src/mcp/config.ts @@ -5,14 +5,21 @@ export const MCP_SERVER_CONFIG = { name: 'babylon-mcp', - version: '1.0.0', + version: '1.1.0', description: 'Babylon.js Documentation and Examples MCP Server', author: 'Babylon MCP Team', capabilities: { tools: { - description: 'Provides tools for searching and retrieving Babylon.js documentation', - available: ['search_babylon_docs', 'get_babylon_doc'], + description: + 'Provides tools for searching and retrieving Babylon.js documentation, API references, and source code', + available: [ + 'search_babylon_docs', + 'get_babylon_doc', + 'search_babylon_api', + 'search_babylon_source', + 'get_babylon_source', + ], }, prompts: { description: 'Future: Pre-defined prompts for common Babylon.js tasks', @@ -25,8 +32,13 @@ export const MCP_SERVER_CONFIG = { }, instructions: - 'Babylon MCP Server provides access to Babylon.js documentation, API references, and code examples. ' + - 'Use search_babylon_docs to find relevant documentation, and get_babylon_doc to retrieve specific pages. ' + + 'Babylon MCP Server provides access to Babylon.js documentation, API references, and source code. ' + + 'Available tools:\n' + + '- search_babylon_docs: Search documentation with optional category filtering\n' + + '- get_babylon_doc: Retrieve full documentation page by path\n' + + '- search_babylon_api: Search API documentation (classes, methods, properties)\n' + + '- search_babylon_source: Search Babylon.js source code files with optional package filtering\n' + + '- get_babylon_source: Retrieve source file content with optional line range\n' + 'This server helps reduce token usage by providing a canonical source for Babylon.js framework information.', transport: { @@ -44,11 +56,11 @@ export const MCP_SERVER_CONFIG = { }, babylonSource: { repository: 'https://github.com/BabylonJS/Babylon.js.git', - description: 'Babylon.js source code (future integration)', + description: 'Babylon.js source code repository', }, havok: { repository: 'https://github.com/BabylonJS/havok.git', - description: 'Havok Physics integration (future)', + description: 'Havok Physics integration', }, }, } as const;