Compare commits

..

4 Commits

Author SHA1 Message Date
Shaun Arman
2ad87b4c78 fix(mcp): add validation to block dangerous environment variables
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m30s
Test / frontend-typecheck (pull_request) Successful in 2m6s
Test / frontend-tests (pull_request) Successful in 2m6s
Test / rust-clippy (pull_request) Successful in 3m46s
PR Review Automation / review (pull_request) Successful in 4m45s
Test / rust-tests (pull_request) Failing after 5m12s
Add defense-in-depth security validation for stdio transport to reject
environment variables that could be used for privilege escalation attacks.
Blocks the following dangerous variables (case-insensitive):
- LD_PRELOAD (Linux)
- LD_LIBRARY_PATH (Linux)
- DYLD_INSERT_LIBRARIES (macOS)
- DYLD_LIBRARY_PATH (macOS)
- DYLD_FRAMEWORK_PATH (macOS)
- DYLD_FALLBACK_LIBRARY_PATH (macOS)

These variables can inject malicious libraries into spawned processes and
should never be user-configurable for MCP servers.

Add comprehensive tests:
- test_rejects_relative_path: Verify existing path validation
- test_rejects_dangerous_env_vars: Test all blocked variables
- test_rejects_dangerous_env_vars_case_insensitive: Verify lowercase variants blocked
- test_allows_safe_env_vars: Verify legitimate vars (DEBUG, PATH, API_KEY) allowed

All tests passing.
2026-06-01 12:16:11 -05:00
Shaun Arman
82d7f350db fix(mcp): change plaintext env input to type=text
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m37s
Test / frontend-tests (pull_request) Successful in 1m31s
Test / frontend-typecheck (pull_request) Successful in 1m32s
Test / rust-clippy (pull_request) Successful in 3m30s
PR Review Automation / review (pull_request) Successful in 4m28s
Test / rust-tests (pull_request) Successful in 5m8s
Change plaintext_env input field from type='password' to type='text' since
this field is explicitly for non-sensitive values (DEBUG, LOG_LEVEL, etc.).
Using password type for plaintext config was misleading and prevented
copy/paste of legitimate non-sensitive configuration.

Only the encrypted_env and http_headers fields remain as type='password'
for sensitive values like API keys and tokens.
2026-06-01 12:06:04 -05:00
a4d3442891 Update README.md
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
2026-06-01 17:02:03 +00:00
Shaun Arman
ad42d40365 fix(mcp): improve UX clarity for encrypted env vars during edit
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m28s
Test / frontend-tests (pull_request) Successful in 1m31s
Test / frontend-typecheck (pull_request) Successful in 1m34s
Test / rust-clippy (pull_request) Successful in 3m29s
PR Review Automation / review (pull_request) Successful in 4m34s
Test / rust-tests (pull_request) Successful in 4m56s
Add clearer placeholder and helper text to explain that encrypted environment
variables are never displayed for security reasons. When editing an existing
server, the encrypted_env field shows a placeholder explaining that leaving it
blank will preserve existing values.

Also apply cargo fmt formatting fixes to store.rs.
2026-06-01 11:58:52 -05:00

12
.mcp.json Normal file
View File

@ -0,0 +1,12 @@
{
"mcpServers": {
"github": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "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"
}
}
}
}