Skip to content

feat: add mcp middleware hook#344

Merged
akitaSummer merged 2 commits intoeggjs:masterfrom
JasmineLCY:feat/mcp_middleware_hook
Sep 22, 2025
Merged

feat: add mcp middleware hook#344
akitaSummer merged 2 commits intoeggjs:masterfrom
JasmineLCY:feat/mcp_middleware_hook

Conversation

@JasmineLCY
Copy link
Contributor

Checklist
  • npm test passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines
Affected core subsystem(s)
Description of change

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @JasmineLCY, 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 introduces a new feature that provides extensible middleware hooks for the MCP (Micro-Controller-Proxy) system. It allows developers to inject custom logic to be executed both before and after the core MCP middleware processing, enhancing control and observability over request flows within the application.

Highlights

  • New Middleware Hooks: Introduced middlewareStart and middlewareEnd optional hooks to the MCPControllerHook interface, allowing custom logic to be executed before and after MCP controller middleware processing.
  • Middleware Hook Execution: Implemented the execution of these new middlewareStart and middlewareEnd hooks within the mcp_body_middleware when ctx.app.config.mcp.hooks are defined.
  • Configuration and Logging: Added configuration for custom loggers (mcpMiddewareStartLogger and mcpMiddewareEndLogger) in test fixtures to track the execution of the new middleware hooks.
  • Test Coverage: Updated existing test cases to include assertions that verify the proper functioning and logging of the newly introduced middleware hooks, ensuring their correct integration.
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

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 a middleware hook mechanism for MCP, allowing custom logic to be executed at the start and end of MCP middleware processing. The changes include defining the hook interface, integrating it into the MCP middleware, and passing the hooks via the application configuration. The implementation is sound and is accompanied by tests. I have a couple of suggestions to improve the robustness of the test hook implementation and reduce code duplication in the tests.

Copy link
Contributor

@killagu killagu left a comment

Choose a reason for hiding this comment

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

LGTM

@akitaSummer akitaSummer merged commit 7215645 into eggjs:master Sep 22, 2025
11 checks passed
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