Skip to content

Developer Knowledge OneMCP proxy#9921

Open
chkuang-g wants to merge 10 commits intomainfrom
chkuang/dkp
Open

Developer Knowledge OneMCP proxy#9921
chkuang-g wants to merge 10 commits intomainfrom
chkuang/dkp

Conversation

@chkuang-g
Copy link
Contributor

@chkuang-g chkuang-g commented Feb 13, 2026

Description

  • Add OneMCP proxy support to Firebase MCP server. Now
  • Bundle Developer Knowledge MCP as part of Firebase MCP server

Scenarios Tested

  • Unit tests with .spec.ts
  • Use npx -y @modelcontextprotocol/inspector to ensure tools/call and tools/list is working.

Sample Commands

N/A. It is MCP feature

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @chkuang-g, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request integrates the 'Developer Knowledge' service into the existing Model Context Protocol (MCP) proxy infrastructure. It establishes a new, generic mechanism for interacting with remote MCP servers, allowing the system to discover and utilize tools provided by external services. The changes enable the Firebase MCP server to act as a proxy for the Developer Knowledge API, expanding its capabilities to include this new feature.

Highlights

  • New Server Feature: Developer Knowledge: Introduced 'developerknowledge' as a new ServerFeature within the Model Context Protocol (MCP) system, allowing for integration with the Developer Knowledge API.
  • Generic Remote MCP Proxy Implementation: Added a new OneMcpServer class and related infrastructure to generically proxy remote MCP services. This class handles fetching tools and proxying tool calls to external MCP endpoints, using separate authenticated and unauthenticated clients.
  • Integration of Developer Knowledge Service: Configured the Developer Knowledge service to use the new OneMcpServer proxy, defining its API origin and registering it within the MCP system for tool and prompt management.
  • Updated Tool Discovery Logic: Modified the getToolsByName and getToolsByFeature functions to asynchronously fetch and include tools from remote MCP servers, ensuring that both local and proxied tools are discoverable and available.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • src/api.ts
    • Added developerKnowledgeOrigin function to define the base URL for the Developer Knowledge API.
  • src/apiv2.ts
    • Adjusted comment formatting for request options.
    • Added a newline before setting the Authorization header in prepareRequest.
  • src/bin/mcp.ts
    • Updated the call to markdownDocsOfTools to await its result, reflecting its new asynchronous nature.
  • src/mcp/onemcp/index.ts
    • Added a new file to define ONEMCP_SERVERS, registering the 'developerknowledge' feature with a new OneMcpServer instance.
  • src/mcp/onemcp/onemcp_server.ts
    • Added a new file defining the OneMcpServer class, which handles fetching tools and proxying tool calls to remote MCP servers.
  • src/mcp/prompts/index.ts
    • Included 'developerknowledge' in the prompts object, initializing it with an empty array for prompts.
  • src/mcp/tools/index.ts
    • Imported ONEMCP_SERVERS for remote tool integration.
    • Added 'developerknowledge' to the tools object, initializing it with an empty array for local tools.
    • Modified getToolsByName to asynchronously retrieve and include tools from remote MCP servers.
    • Updated getToolsByFeature to be asynchronous, include remote server features, and combine local and remote tools.
    • Added getRemoteToolsByFeature function to fetch tools from registered remote MCP servers.
    • Updated availableTools and markdownDocsOfTools to await the now asynchronous getToolsByFeature call.
  • src/mcp/types.ts
    • Added 'developerknowledge' to the SERVER_FEATURES array, formally recognizing it as a new server feature.
  • src/mcp/util.ts
    • Imported developerKnowledgeOrigin.
    • Added 'developerknowledge' to SERVER_FEATURE_APIS and DETECTED_API_FEATURES maps.
    • Updated the deepClean function signature to remove the explicit boolean type for the isRootLevel default parameter.
  • src/mcp/util/availability.ts
    • Added 'developerknowledge' to DEFAULT_AVAILABILITY_CHECKS, setting its default availability to true.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for proxying the Developer Knowledge MCP server. It adds a new OneMcpServer class to handle remote MCP servers, and integrates it into the existing tool discovery mechanism. The changes make several tool-related functions asynchronous to accommodate fetching tools from remote servers.

My review focuses on ensuring type safety, consistent error handling, and good documentation for the new and modified code. I've identified a few areas for improvement:

  • Replacing an unnecessary any type cast to improve type safety.
  • Using FirebaseError instead of the generic Error for consistency.
  • Adding documentation to a newly modified exported function.

Copy link
Member

@joehan joehan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Run npm run format and add an entry to CHANGELOG:

- Added new DevKnowledge MCP tools

Copy link

@asperpharma asperpharma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uh

Copy link

@asperpharma asperpharma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ty

@chkuang-g chkuang-g changed the title Developer Knowledge MCP proxy Developer Knowledge OneMCP proxy Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants