-
Notifications
You must be signed in to change notification settings - Fork 1
Mcp server implementation #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a comprehensive MCP (Model Context Protocol) server for Backstage catalogs. The implementation adds a complete authentication system, enhanced error handling, optimized response formatting, and robust infrastructure for production use.
Key changes:
- Complete MCP server implementation with 13 tools covering all major Backstage Catalog API operations
- Comprehensive authentication system supporting Bearer tokens, OAuth, API keys, and service accounts
- Enhanced error handling with standardized responses and security auditing
Reviewed Changes
Copilot reviewed 70 out of 77 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tools-manifest.json | Generated manifest listing all available MCP tools with incorrect parameter schemas |
| src/types.ts | Updated type definitions with proper interfaces and exports |
| src/server.ts | Main server implementation with authentication configuration and tool loading |
| src/tools/*.ts | All 13 tool implementations with error handling and proper schemas |
| src/utils/*.ts | Comprehensive utility classes for authentication, caching, pagination, and responses |
| src/api/backstage-catalog-api.ts | Enhanced API client with authentication, caching, and security features |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
- Deleted unused guard functions (isString, isFunction, isBigInt) from guards.ts. - Removed tool-loader.spec.ts and tool-validator.test.ts as they were no longer needed. - Consolidated tool-related exports into a new tools/index.ts file for better organization. - Introduced ToolErrorHandler for standardized error handling during tool execution. - Implemented DefaultToolFactory for loading tool modules dynamically. - Added comprehensive tests for ToolLoader, DefaultToolRegistrar, and tool metadata validation. - Updated tools-manifest.json to reflect changes in tool parameters and descriptions.
…ogic - Updated import statements across various files to include .js extensions for consistency. - Refactored the ToolLoader class to register tools directly from static imports instead of loading from file paths. - Removed obsolete test files related to tool loading and metadata validation. - Enhanced the tools manifest with new entries for additional tools. - Updated TypeScript configuration to use NodeNext module resolution. - Added new dependencies for esbuild and rimraf in yarn.lock.
… for dependency management
…y ref tests for improved error messages
No description provided.