Skip to content

feat(McpHub): inject env vars on whole mcp config #3970

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

Merged
merged 4 commits into from
May 28, 2025

Conversation

NamesMT
Copy link

@NamesMT NamesMT commented May 25, 2025

Related GitHub Issue

Resolves #4014

Description

From @axmo reporting via Discord, some MCPs require inputting secrets via the CLI args, instead of env, and/or for any other reason, user would like to have command or args to have value inferred from the env, like using bunx or npx, configuring mcp args via env without code committing,...

The PR also fixes an unreported problem: env vars is not injected for sse transport, currently it's injected for stdio only.

Test Procedure

There is unit tests covering the usage and I also do some manual tests via VSCode debug to make sure all works good, just add breakpoint at the line.

Type of Change

  • 🐛 Bug Fix: Non-breaking change that fixes an issue.
  • New Feature: Non-breaking change that adds functionality.
  • 💥 Breaking Change: Fix or feature that would cause existing functionality to not work as expected.
  • ♻️ Refactor: Code change that neither fixes a bug nor adds a feature.
  • 💅 Style: Changes that do not affect the meaning of the code (white-space, formatting, etc.).
  • 📚 Documentation: Updates to documentation files.
  • ⚙️ Build/CI: Changes to the build process or CI configuration.
  • 🧹 Chore: Other changes that don't modify src or test files.

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I have performed a thorough self-review of my code.
  • Code Quality:
    • My code adheres to the project's style guidelines.
    • There are no new linting errors or warnings (npm run lint).
    • All debug code (e.g., console.log) has been removed.
  • Testing:
    • New and/or updated tests have been added to cover my changes.
    • All tests pass locally (npm test).
    • The application builds successfully with my changes.
  • Branch Hygiene: My branch is up-to-date (rebased) with the main branch.
  • Documentation Impact: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
  • Changeset: A changeset has been created using npm run changeset if this PR includes user-facing changes or dependency updates.
  • Contribution Guidelines: I have read and agree to the Contributor Guidelines.

Documentation Updates

Currently the docs does not note about the ability to reference env variables in the mcp config at all, would be great if anyone can help add it, normal user might not know about this feature and commit API keys.

Additional Notes

Get in Touch

@NamesMT


Important

Inject environment variables into MCP configurations for both stdio and sse transports, fixing a bug in McpHub.ts.

  • Feature:
    • Inject environment variables into MCP configurations for both stdio and sse transports in McpHub.ts.
    • Update injectEnv function in config.ts to support both string and object configurations.
  • Bug Fix:
    • Fix issue where environment variables were not injected for sse transport in McpHub.ts.

This description was created by Ellipsis for 8961614. You can customize this summary. It will automatically update as commits are pushed.

Copy link
Collaborator

@daniel-lxs daniel-lxs left a comment

Choose a reason for hiding this comment

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

Just a nit to improve type assertion. This looks good to me.

@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label May 28, 2025
@daniel-lxs daniel-lxs moved this from Triage to PR [Needs Review] in Roo Code Roadmap May 28, 2025
@daniel-lxs daniel-lxs removed the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label May 28, 2025
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label May 28, 2025
@mrubens mrubens merged commit dde71d2 into RooCodeInc:main May 28, 2025
12 checks passed
@github-project-automation github-project-automation bot moved this from PR [Needs Review] to Done in Roo Code Roadmap May 28, 2025
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap May 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lgtm This PR has been approved by a maintainer PR - Needs Review size:S This PR changes 10-29 lines, ignoring generated files.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

MCP configuration Environment Variable expansion does not work in cmd section
4 participants