
VS Code extension that exposes MCP (Model Context Protocol) tools for Jira, Confluence Wiki and GitLab to language-model-based assistants such as GitHub Copilot. The extension manages credentials securely, spawns the MCP server automatically and provides commands for configuration and troubleshooting.
Install from the VS Code Marketplace
Key features
- 212 MCP tools across seven services: Jira (58), Confluence Wiki (28), GitLab (75), Jenkins (8), SonarQube (15), PFP Portfolio (20), Figma (8)
- Secure credential storage - tokens are kept in VS Code's
SecretStorage API and never leave the machine
- Zero configuration startup - the MCP server is spawned and managed automatically
- Reactive settings - changes are picked up instantly without restarting VS Code
- Read-only mode - block all write operations for safe exploration
- Connection testing - verify connectivity to each service directly from the Command Palette
- Enterprise-grade reliability - built-in rate limiting, caching, automatic retries, and request timeouts
- Security by design - OAuth2 support, anomaly detection, content filtering, input validation, and audit logging
Available commands
| Command |
ID |
| Comarch MCP: Set Jira Bearer Token |
mcp-integration-tool.setJiraToken |
| Comarch MCP: Set Wiki Bearer Token |
mcp-integration-tool.setWikiToken |
| Comarch MCP: Set GitLab Access Token |
mcp-integration-tool.setGitlabToken |
| Comarch MCP: Set Jenkins Credentials |
mcp-integration-tool.setJenkinsCredentials |
| Comarch MCP: Set SonarQube Token |
mcp-integration-tool.setSonarqubeToken |
| Comarch MCP: Set PFP Certificate Password |
mcp-integration-tool.setPfpToken |
| Comarch MCP: Set Figma Token |
mcp-integration-tool.setFigmaToken |
| Comarch MCP: Test Jira Connection |
mcp-integration-tool.testConnectionJira |
| Comarch MCP: Test Wiki Connection |
mcp-integration-tool.testConnectionWiki |
| Comarch MCP: Test GitLab Connection |
mcp-integration-tool.testConnectionGitlab |
| Comarch MCP: Test Jenkins Connection |
mcp-integration-tool.testConnectionJenkins |
| Comarch MCP: Test SonarQube Connection |
mcp-integration-tool.testConnectionSonarqube |
| Comarch MCP: Test PFP Connection |
mcp-integration-tool.testConnectionPfp |
| Comarch MCP: Test Figma Connection |
mcp-integration-tool.testConnectionFigma |
| Comarch MCP: Show Configuration Status |
mcp-integration-tool.showConfigurationStatus |
| Comarch MCP: Show Logs |
mcp-integration-tool.showLogs |
| Comarch MCP: Refresh MCP Server |
mcp-integration-tool.refreshMcpServer |
| Comarch MCP: Getting Started |
mcp-integration-tool.gettingStarted |
Configuration
Settings live under the mcp-integration-tool namespace.
Basic
| Setting |
Type |
Default |
Description |
allowed-mcp-operations |
string |
"" |
Operation classes to expose. Use read for read-only deployments. Replaces deprecated read-only-mode. |
read-only-mode |
boolean |
false |
Deprecated. Use allowed-mcp-operations=read instead. |
enable-jira-integration |
boolean |
false |
Enable Jira tools |
jira-base-url |
string |
"" |
Jira REST API base URL |
jira-comment-visibility-role |
string |
"" |
Default role for comment visibility restriction (e.g., Comarch users) |
enable-wiki-integration |
boolean |
false |
Enable Confluence Wiki tools |
wiki-base-url |
string |
"" |
Wiki REST API base URL |
enable-gitlab-integration |
boolean |
false |
Enable GitLab tools |
gitlab-base-url |
string |
"" |
GitLab REST API base URL |
enable-jenkins-integration |
boolean |
false |
Enable Jenkins tools |
jenkins-base-url |
string |
"" |
Jenkins base URL |
enable-sonarqube-integration |
boolean |
false |
Enable SonarQube tools |
sonarqube-base-url |
string |
"" |
SonarQube base URL |
enable-pfp-integration |
boolean |
false |
Enable PFP Portfolio tools |
pfp-base-url |
string |
"" |
PFP base URL (must be https) |
pfp-certificate-path |
string |
"" |
Absolute path to the PKCS#12 client certificate (.pfx/.p12) for mutual TLS. Must point outside workspace folders |
enable-figma-integration |
boolean |
false |
Enable Figma tools |
figma-base-url |
string |
"https://api.figma.com" |
Figma REST API base URL (change only for a proxy) |
PFP authenticates with a client certificate, not a bearer token: store the certificate password via the Comarch MCP: Set PFP Certificate Password command (kept in SecretStorage) and point pfp-certificate-path at your .pfx file. See docs/guides/pfp-certificates.md in the repository for certificate export and conversion recipes.
Advanced
| Setting |
Type |
Default |
Description |
log-level |
enum |
"info" |
Logging verbosity (debug, info, warn, error) |
enable-rate-limiting |
boolean |
true |
Enable request rate limiting |
rate-limit-max |
number |
100 |
Max requests per rate limiting window |
rate-limit-window |
number |
60000 |
Rate limiting window in ms |
http-timeout |
number |
30000 |
HTTP request timeout in ms |
http-max-retries |
number |
3 |
Max retry attempts for failed requests |
http-retry-delay |
number |
1000 |
Delay between retries in ms |
cache-ttl |
number |
300000 |
Cache time-to-live in ms |
cache-max-size |
number |
500 |
Max number of cache entries |
Requirements
- VS Code 1.104.0 or later with MCP support
- Node.js 18+ (bundled with VS Code)
Security: stdio env-var leak ()
Architectural limitation — no extension-side fix is currently possible.
The extension stores Bearer tokens at rest in VS Code's SecretStorage, but VS Code's MCP API (McpStdioServerDefinition) only accepts service credentials as plaintext environment variables on the spawned MCP server child process. Tokens flow through the extension's setServiceEnvVars() helper into process.env of the child, where any program running as the same operating-system user can read them without elevated privileges:
- Linux / macOS: any same-user process can read
/proc/<pid>/environ (Linux procfs) or invoke ps eww <pid> to dump the child's environment block.
- Windows: same-user processes can call
ReadProcessMemory (or NtQueryInformationProcess + PEB walk) against the MCP server PID to recover the environment strings.
This affects only the VS Code Extension deployment mode. The stdio (npx/npm), Docker HTTP, and Docker Compose Streamable HTTP modes do not extract tokens from SecretStorage and are tracked separately (see ``).
Mitigations available today
- Use minimum-scope tokens. Prefer read-only Personal Access Tokens or service accounts wherever possible. For Jira and Confluence Wiki, scope tokens to read-only project/space access. For GitLab, prefer
read_api scope over api whenever your workflow allows; reserve write-capable tokens for the smallest possible blast radius.
- Set
allowed-mcp-operations=read in extension settings (mcp-integration-tool.allowed-mcp-operations) so that even if a write-capable token is exposed, the MCP server itself blocks all write tools at registration time. Deprecated read-only-mode was replaced by this setting.
- Treat your developer machine as a trust boundary. Do not run untrusted local processes (browser-injected helpers, third-party CLIs, unaudited extensions) under the same OS user that runs VS Code. Any such process can read the child's environment.
- Rotate tokens promptly when a developer machine is decommissioned, lost, or suspected of compromise.
- PFP certificates: the certificate password is not passed as an inline env var at all - the extension writes it to a
0600 temporary file and hands the server only the PFP_PFX_PASSWORD_FILE path. The certificate file itself must live outside workspace folders (paths inside a workspace are rejected at validation).
Why no code-level fix yet
McpStdioServerDefinition does not currently expose a stdin-based or IPC-based credential-injection channel; the env property is the only credential transport supported by the upstream API. A clean fix requires VS Code to evolve its MCP API (e.g., to support stdin-delivered credentials, an OS keychain handle, or a credential broker IPC). We track this upstream so we can remove this section as soon as a non-environment-variable credential channel becomes available.
Track upstream API evolution
- VS Code repository: https://github.com/microsoft/vscode (search issues/PRs for
mcp and McpStdioServerDefinition to follow the discussion).
- Microsoft VS Code MCP roadmap entry point: https://aka.ms/vscode-mcp (lands on the current MCP-related roadmap article; replace with a more specific upstream API tracking issue when one is published).
This section will be updated and ultimately removed once the upstream API supports a credential channel that bypasses process.env.
References: , CWE-526 (Exposure of Sensitive Information Through Environmental Variables), OWASP MCP01 (Token Mismanagement / Sensitive-Data Exposure). Related findings: (workspace-settings override), (per-instance wiki tokens, addressed in this codebase).
Diagnostics and troubleshooting
- Run Test <Service> Connection to verify connectivity and token validity (Jenkins uses username + password/API token instead of Bearer token; SonarQube uses a token-based authentication; PFP uses a mutual-TLS client certificate, so the test exercises the certificate handshake rather than a token; Figma sends the personal access token as
X-Figma-Token).
- Run Show Configuration Status to verify which integrations are active and whether tokens are set.
- Run Comarch MCP: Show Logs to inspect extension and server logs.
- Make sure bearer tokens were set using the appropriate Set ... Token commands and that base URLs are correct.
- If tools are missing after a configuration change, run Refresh MCP Server (reload tools).
- If authorization errors persist, reissue tokens and confirm permissions with your administrator.
If you still need help, collect logs and share them with your internal support or operations team.