Gitlab MCP Server
Model Context Protocol (MCP) server for GitLab — exposes 1006 GitLab REST & GraphQL API operations as MCP tools (28 meta-tools / 43 enterprise), 24 resources, 38 prompts, and 17 completion types for AI assistants. Written in Go, single static binary, stdio and HTTP transport.
GitLab MCP Server
A Model Context Protocol (MCP) server that exposes the entire GitLab API as MCP tools, resources, and prompts for AI assistants. Single static binary — zero dependencies.
Security first: Continuously monitored on SonarCloud with quality gates, coverage, and security scanning. Supports read-only mode, safe mode (dry-run preview), and self-hosted GitLab with TLS verification.
Highlights
- 1006 MCP tools — complete GitLab REST API v4 coverage across 162 domain sub-packages: projects, branches, tags, releases, merge requests, issues, pipelines, jobs, groups, users, wikis, environments, deployments, packages, container registry, runners, feature flags, CI/CD variables, templates, admin settings, access tokens, deploy keys, and more
- 28 meta-tools (43 with
GITLAB_ENTERPRISE=true) — domain-grouped dispatchers that reduce token overhead for LLMs (optional, enabled by default). 15 additional enterprise meta-tools available for Premium/Ultimate features - 11 sampling actions — LLM-assisted code review, issue analysis, pipeline failure diagnosis, security review, release notes, milestone reports, and more via
gitlab_analyzemeta-tool (MCP sampling capability) - 4 elicitation tools — interactive creation wizards (issue, MR, release, project) with step-by-step user prompts
- 24 MCP resources — read-only data: user, groups, group members, group projects, projects, issues, pipelines, members, labels, milestones, branches, MRs, releases, tags, workspace roots, and 5 workflow best-practice guides
- 38 MCP prompts — AI-optimized: code review, pipeline status, risk assessment, release notes, standup, workload, user stats, team management, cross-project dashboards, analytics, milestones, audit
- 6 MCP capabilities — logging, completions, roots, progress, sampling, elicitation
- 44 tool icons — SVG data-URI icons on all tools, resources, and prompts for visual identification in MCP clients
- Pagination on all list endpoints with metadata (total items, pages, next/prev)
- Transports: stdio (default for desktop AI) and HTTP (Streamable HTTP for remote clients)
- Cross-platform: Windows, Linux & macOS, amd64 & arm64
- Self-hosted GitLab with self-signed TLS certificate support
Example Prompts
Once connected, just talk to your AI assistant in natural language:
"List my GitLab projects" "Show me open merge requests in my-app" "Create a merge request from feature-login to main" "Review merge request !15 — is it safe to merge?" "List open issues assigned to me" "What's the pipeline status for project 42?" "Why did the last pipeline fail?" "Generate release notes from v1.0 to v2.0"
The server handles the translation from natural language to GitLab API calls. You do not need to know project IDs, API endpoints, or JSON syntax — the AI assistant figures that out for you. See Usage Examples for more scenarios.
Quick Start
1. Download
Download the latest binary for your platform from GitHub Releases and make it executable:
chmod +x gitlab-mcp-server-* # Linux/macOS only
2. Configure your MCP client
Recommended: Run the built-in setup wizard — it configures your GitLab connection and MCP client in one step:
./gitlab-mcp-server --setup
Tip: The wizard supports Web UI, Terminal UI, and plain CLI modes. On Windows, double-click the
.exeto launch the wizard automatically.
Or configure manually — expand your client below:
VS Code (GitHub Copilot)
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"gitlab": {
"type": "stdio",
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Claude Code
claude mcp add gitlab /path/to/gitlab-mcp-server \
-e GITLAB_URL=https://gitlab.example.com \
-e GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxx
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
JetBrains IDEs
Add to the MCP configuration in Settings → Tools → AI Assistant → MCP Servers:
{
"servers": {
"gitlab": {
"type": "stdio",
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Zed
Add to Zed settings (settings.json):
{
"context_servers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"args": [],
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Kiro
Add to .kiro/settings/mcp.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"args": [],
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
3. Verify
Open your AI client and try:
"List my GitLab projects"
See the Getting Started guide for detailed setup instructions.
Tool Modes
Two registration modes, controlled by the META_TOOLS environment variable:
| Mode | Tools | Description |
|---|---|---|
| Meta-Tools (default) | 28 base / 43 enterprise | Domain-grouped dispatchers with action parameter. Lower token usage. |
| Individual | 1006 | Every GitLab operation as a separate MCP tool. |
Meta-tool summary:
| Meta-Tool | Actions | Description |
|---|---|---|
gitlab_access | 48 | Manage GitLab access credentials: access tokens (project/group/personal), deploy tokens, deploy keys, access requests, and invitations. |
gitlab_admin | 82 | GitLab instance administration: topics, settings, appearance, broadcast messages, features, licenses, system hooks, Sidekiq metrics, plan limits, usage data, migrations, OAuth apps, metadata, custom attributes, error tracking, secure files, Terraform states, cluster agents, dependency proxy, and imports. |
gitlab_analyze | 11 | LLM-assisted analysis of GitLab data via MCP sampling. |
gitlab_branch | 11 | CRUD and protect Git branches. |
gitlab_ci_catalog | 2 | Discover and inspect CI/CD Catalog resources: reusable pipeline components and templates (Premium/Ultimate, GraphQL). |
gitlab_ci_variable | 15 | Manage GitLab CI/CD variables at instance, group, and project scope. |
gitlab_custom_emoji | 3 | CRUD group-level custom emoji via GraphQL (Premium/Ultimate). |
gitlab_discover_project | 0 | Resolve a git remote URL to a GitLab project. |
gitlab_environment | 23 | Manage GitLab environments, protected environments, deployment freeze periods, and deployment records. |
gitlab_feature_flags | 10 | CRUD GitLab feature flags and feature flag user lists (named sets of user IDs). |
gitlab_group | 130 | Manage GitLab groups: CRUD, subgroups, members, labels, milestones, webhooks, badges, boards, uploads, and import/export. |
gitlab_issue | 63 | Manage GitLab issues: CRUD, notes, discussions, links, time tracking, work items, award emoji, statistics, and resource events. |
gitlab_job | 25 | Manage GitLab CI/CD jobs: list, get, retry, cancel, erase, play manual jobs, wait for completion, download artifacts/logs, and manage CI/CD job token scope. |
gitlab_merge_request | 53 | Manage GitLab merge requests: create, list, get, update, merge, approve, rebase, delete. |
gitlab_model_registry | 1 | Download ML model package files from GitLab Model Registry (Premium/Ultimate). |
gitlab_mr_review | 22 | Review and comment on GitLab merge requests: notes, threaded discussions, code diffs, draft notes (batch review), and diff versions. |
gitlab_package | 24 | Manage GitLab package registry, container registry, and protection rules. |
gitlab_pipeline | 33 | Manage GitLab CI/CD pipelines: list, get, create, retry, cancel, delete, and wait for completion. |
gitlab_project | 122 | Manage GitLab projects: CRUD, settings, members, labels, milestones, webhooks, badges, boards, integrations, uploads, Pages, avatars, approval rules, mirrors, and import/export. |
gitlab_release | 12 | CRUD GitLab releases and release asset links (binaries, downloads). |
gitlab_repository | 40 | Browse and manage GitLab repository content: file tree, read/write/delete files, commits, diffs, cherry-pick, revert, blame, compare branches, contributors, archives, changelogs, submodules, render markdown, and commit discussions. |
gitlab_runner | 34 | Manage CI/CD runners: CRUD, project/group assignment, registration, token resets, and runner controllers (admin, experimental). |
gitlab_search | 10 | Search GitLab by scope. |
gitlab_snippet | 34 | Manage GitLab snippets (personal and project-scoped): CRUD, raw content, file content, discussions, notes, and award emoji. |
gitlab_tag | 9 | Manage Git tags: create, list, get, delete, verify GPG signatures, and protect/unprotect tags. |
gitlab_template | 12 | Browse GitLab templates (gitignores, CI/CD YAML, Dockerfiles, licenses, project templates) and lint CI configuration. |
gitlab_user | 74 | Manage GitLab users: CRUD, SSH/GPG keys, emails, PATs, impersonation tokens, status, todos, events, notifications, namespaces, and avatars. |
gitlab_wiki | 6 | CRUD and upload attachments to GitLab project wiki pages. |
gitlab_attestation 🏢 | 2 | List and download build attestations (SLSA provenance) for project artifacts. |
gitlab_audit_event 🏢 | 6 | List and get GitLab audit events at instance, group, and project levels for compliance tracking. |
gitlab_compliance_policy 🏢 | 2 | Get and update admin compliance policy settings (CSP namespace configuration). |
gitlab_dependency 🏢 | 4 | List project dependencies and create/download SBOM exports (CycloneDX). |
gitlab_dora_metrics 🏢 | 2 | Get DORA metrics: deployment frequency, lead time, MTTR, change failure rate. |
gitlab_enterprise_user 🏢 | 4 | Manage enterprise users for a GitLab group: list, get, disable 2FA, delete. |
gitlab_external_status_check 🏢 | 14 | Manage external status checks for MRs and projects. |
gitlab_geo 🏢 | 8 | Manage Geo replication sites: CRUD, repair OAuth, and check replication status (admin, Premium/Ultimate). |
gitlab_group_scim 🏢 | 4 | Manage SCIM identities for GitLab group provisioning. |
gitlab_member_role 🏢 | 6 | Manage custom member roles at instance or group level. |
gitlab_merge_train 🏢 | 4 | Manage GitLab merge trains (automated merge queues). |
gitlab_project_alias 🏢 | 4 | CRUD project aliases: short names that redirect to projects (admin, Premium/Ultimate). |
gitlab_security_finding 🏢 | 1 | List pipeline security report findings via GraphQL (Premium/Ultimate). |
gitlab_storage_move 🏢 | 18 | Manage repository storage moves for projects, groups, and snippets (admin only). |
gitlab_vulnerability 🏢 | 8 | List, triage, and summarize project vulnerabilities (Premium/Ultimate, GraphQL). |
28 base / 43 with enterprise meta-tools. See Meta-Tools Reference for the complete list with actions and examples.
Compatibility
| MCP Capability | Support |
|---|---|
| Tools | 1006 individual / 28–43 meta |
| Resources | 24 (static + templates) |
| Prompts | 38 templates |
| Completions | Project, user, group, branch, tag |
| Logging | Structured (text/JSON) + MCP notifications |
| Progress | Tool execution progress reporting |
| Sampling | 11 LLM-powered analysis actions via gitlab_analyze |
| Elicitation | 4 interactive creation wizards |
| Roots | Workspace root tracking |
Tested with: VS Code + GitHub Copilot, Claude Desktop, Claude Code, Cursor, Windsurf, JetBrains IDEs, Zed, Kiro.
See the full Compatibility Matrix for detailed client support.
Documentation
Full documentation is available at jmrplens.github.io/gitlab-mcp-server.
| Document | Description |
|---|---|
| Getting Started | Download, setup wizard, per-client configuration |
| Configuration | Environment variables, transport modes, TLS |
| Tools Reference | All 1006 individual tools with input/output schemas |
| Meta-Tools | 28/43 domain meta-tools with action dispatching |
| Resources | All 24 resources with URI templates |
| Prompts | All 38 prompts with arguments and output format |
| Auto-Update | Self-update mechanism, modes, and release format |
| Security | Security model, token scopes, input validation |
| Architecture | System architecture, component design, data flow |
| Development Guide | Building, testing, CI/CD, contributing |
Tech Stack
| Component | Technology |
|---|---|
| Language | Go 1.26+ |
| MCP SDK | github.com/modelcontextprotocol/go-sdk v1.5.0 |
| GitLab Client | gitlab.com/gitlab-org/api/client-go/v2 v2.20.1 |
| Transport | stdio (default), HTTP (Streamable HTTP) |
Building from Source
git clone https://github.com/jmrplens/gitlab-mcp-server.git
cd gitlab-mcp-server
make build
See the Development Guide for cross-compilation and contributing guidelines.
Docker
docker pull ghcr.io/jmrplens/gitlab-mcp-server:latest
# Single-instance mode (default GitLab URL for all clients)
docker run -d --name gitlab-mcp-server -p 8080:8080 \
-e GITLAB_URL=https://gitlab.example.com \
-e GITLAB_SKIP_TLS_VERIFY=true \
ghcr.io/jmrplens/gitlab-mcp-server:latest
# Multi-instance mode (clients send GITLAB-URL header per request)
docker run -d --name gitlab-mcp-server -p 8080:8080 \
ghcr.io/jmrplens/gitlab-mcp-server:latest
Clients authenticate via PRIVATE-TOKEN or Authorization: Bearer headers, and can optionally send a GITLAB-URL header to target a specific GitLab instance. See HTTP Server Mode and Docker documentation for Docker Compose and configuration options.
FAQ
Does it work with self-hosted GitLab?
Yes. Set GITLAB_URL to your instance URL. Self-signed TLS certificates are supported via GITLAB_SKIP_TLS_VERIFY=true.
Is my data safe?
The server runs locally on your machine (stdio mode) or on your own infrastructure (HTTP mode). No data is sent to third parties — all API calls go directly to your GitLab instance. See SECURITY.md for details.
Can I use it in read-only mode?
Yes. Set GITLAB_READ_ONLY=true to disable all mutating tools (create, update, delete). Only read operations will be available.
Alternatively, set GITLAB_SAFE_MODE=true for a dry-run mode: mutating tools remain visible but return a structured JSON preview instead of executing. Useful for auditing, training, or reviewing what an AI assistant would do.
What GitLab editions are supported?
Both Community Edition (CE) and Enterprise Edition (EE). Set GITLAB_ENTERPRISE=true to enable 15 additional tools for Premium/Ultimate features (DORA metrics, vulnerabilities, compliance, etc.).
How does it handle rate limiting?
The server includes retry logic with backoff for GitLab API rate limits. Errors are classified as transient (retryable) or permanent, with actionable hints in error messages.
Which AI clients are supported?
Any MCP-compatible client: VS Code + GitHub Copilot, Claude Desktop, Cursor, Claude Code, Windsurf, JetBrains IDEs, Zed, Kiro, and others. The built-in setup wizard can auto-configure most clients.
Contributing
See CONTRIBUTING.md for development guidelines, branch naming, commit conventions, and pull request process.
Security
See SECURITY.md for the security policy and vulnerability reporting.
Code of Conduct
See CODE_OF_CONDUCT.md. This project follows the Contributor Covenant v2.1.
Похожие серверы
Scout Monitoring MCP
спонсорPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
спонсорAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
BCMS MCP
Give me a one - two sentence description of the BCMS MCP # MCP The BCMS Model Context Protocol (MCP) integration enables AI assistants like Claude, Cursor, and other MCP-compatible tools to interact directly with your BCMS content. This allows you to create, read, and update content entries, manage media files, and explore your content structure—all through natural language conversations with AI. ## What is MCP? The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is an open standard developed by Anthropic that allows AI applications to securely connect to external data sources and tools. With BCMS MCP support, you can leverage AI assistants to: - Query and explore your content structure - Create new content entries with AI-generated content - Update existing entries - Manage your media library - Get intelligent suggestions based on your content model --- ## Getting Started ### Prerequisites 1. A BCMS account with an active instance 2. An MCP key with appropriate permissions 3. An MCP-compatible client (Claude Desktop, Cursor, or any MCP client) ### Step 1: Create an MCP Key 1. Navigate to your BCMS dashboard 2. Go to Settings → MCP 3. Click Create MCP Key 4. Configure the permissions for templates you want the AI to access:GET: Read entries 5. POST: Create entries 6. PUT: Update entries 7. DELETE: Delete entries Note: Right now, MCP only supports creating, reading and updating content. ### Step 2: Configure Your MCP Client You can find full instructions for integrating BCMS with your AI tools right inside BCMS, on the MCP page. But in general, installing BCMS MCP works in a standard way: ``` { "mcpServers": { "bcms": { "url": "https://app.thebcms.com/api/v3/mcp?mcpKey=YOUR_MCP_KEY" } } } ``` ## Available Tools Once connected, your AI assistant will have access to the following tools based on your MCP key permissions: ### Content Discovery #### list_templates_and_entries Lists all templates and their entries that you have access to. This is typically the first tool to call when exploring your BCMS content. Returns: - Template IDs, names, and slugs - Entry IDs with titles and slugs for each language Example prompt: "Show me all the templates and entries in my BCMS" --- ### Entry Management #### list_entries_for_{templateId} Retrieves all entries for a specific template with full content data. A separate tool is generated for each template you have access to. Returns: - Complete entry data including all meta fields - Content in all configured languages - Entry statuses Example prompt: "List all blog posts from my Blog template" --- #### create_entry_for_{templateId} Creates a new entry for a specific template. The input schema is dynamically generated based on your template's field structure. Input: - statuses: Array of status assignments per language - meta: Array of metadata for each language (title, slug, custom fields) - content: Array of content nodes for each language Example prompt: "Create a new blog post titled 'Getting Started with BCMS' with a brief introduction paragraph" --- #### update_entry_for_{templateId} Updates an existing entry for a specific language. Input: - entryId: The ID of the entry to update - lng: Language code (e.g., "en") - status: Optional status ID - meta: Updated metadata - content: Updated content nodes Example prompt: "Update the introduction paragraph of my 'Getting Started' blog post" --- ### Media Management #### list_all_media Lists all media files in your media library. Returns: - Media IDs, names, and types - File metadata (size, dimensions for images) - Parent directory information Example prompt: "Show me all images in my media library" --- #### list_media_dirs Lists the directory structure of your media library. Returns: - Hierarchical directory structure - Directory IDs and names Example prompt: "Show me the folder structure of my media library" --- #### create-media-directory Creates a new directory in your media library. Input: - name: Name of the directory - parentId: Optional parent directory ID (root if not specified) Example prompt: "Create a new folder called 'Blog Images' in my media library" --- #### request-upload-media-url Returns a URL you use to upload a file (for example via POST with multipart form data), which avoids pushing large binaries through the MCP tool payload. You still need a valid file name and MIME type when uploading, as described in the tool response. Availability: Only when the MCP key has Can mutate media enabled. Example prompt: “Give me an upload URL for a new hero image, then tell me how to upload it.” Input: - fileName: Name of the file with extension - fileData: Base64-encoded file data (with data URI prefix) - parentId: Optional parent directory ID Example prompt: "Upload this image to my Blog Images folder" --- ### Linking Tools #### get_entry_pointer_link Generates an internal BCMS link to an entry for use in content. Input: - entryId: The ID of the entry to link to Returns: - Internal link format: entry:{entryId}@*_{templateId}:entry Example prompt: "Get me the internal link for the 'About Us' page entry" --- #### get_media_pointer_link Generates an internal BCMS link to a media item for use in content. Input: - mediaId: The ID of the media item Returns: - Internal link format: media:{mediaId}@*_@*_:entry Example prompt: "Get the link for the hero image so I can use it in my blog post" --- ## Content Structure ### Entry Content Nodes When creating or updating entries, content is structured as an array of nodes. Supported node types include: Type Description paragraph Standard text paragraph heading Heading (h1-h6) bulletList Unordered list orderedList Numbered list listItem List item codeBlock Code block with syntax highlighting blockquote Quote block image Image node widget Custom widget with props ### Example Content Structure ``` { "content": [ { "lng": "en", "nodes": [ { "type": "heading", "attrs": { "level": 1 }, "content": [ { "type": "text", "text": "Welcome to BCMS" } ] }, { "type": "paragraph", "content": [ { "type": "text", "text": "This is your first paragraph." } ] } ] } ] } ``` ## Security & Permissions ### MCP Key Scopes Your MCP key controls what the AI can access: - Template Access: Only templates explicitly granted in the MCP key are visible - Operation Permissions: Each template can have independent GET/POST/PUT/DELETE permissions - Media Access: Media operations are controlled separately ### Best Practices 1. Principle of Least Privilege: Only grant the permissions needed for your use case 2. Separate Keys: Create different MCP keys for different purposes or team members 3. Regular Rotation: Periodically rotate your MCP keys ## Use Cases ### Content Creation Workflows Blog Post Creation "Create a new blog post about the benefits of headless CMS. Include an introduction, three main benefits with explanations, and a conclusion. Use the Blog template." Product Updates "Update the price field for all products in the Electronics category to apply a 10% discount" ### Content Exploration Content Audit "List all blog posts that don't have a featured image set" Translation Status "Show me which entries are missing German translations" ### Media Organization Library Cleanup "Show me all unused images in the media library" Folder Setup "Create folder structure for: Products > Categories > Electronics, Clothing, Home" ## Troubleshooting ### Common Issues #### "MCP key not found" - Verify your MCP key format: keyId.keySecret.instanceId - Ensure the MCP key hasn't been deleted or deactivated - Check that you're using the correct instance #### "MCP key does not have access to template" - Review your MCP key permissions in the dashboard - Ensure the required operation (GET/POST/PUT/DELETE) is enabled for the template #### Session Expired - MCP sessions may timeout after periods of inactivity - Simply start a new conversation to establish a fresh session ### Getting Help - Documentation: [thebcms.com/docs](https://thebcms.com/docs) - Support: [[email protected]](mailto:[email protected]) - Community: [Join BCMS Discord](https://discord.com/invite/SYBY89ccaR) for community support ## Technical Reference ### Endpoint POST https://app.thebcms.com/api/v3/mcp?mcpKey={MCP_KEY} ### Transport BCMS MCP uses the Streamable HTTP transport with session management. Sessions are maintained via the mcp-session-id header. ### Response Format All tools return structured JSON responses conforming to the MCP specification with: - content: Array of content blocks - structuredContent: Typed response data ## Rate Limits MCP requests are subject to the same rate limits as API requests: - Requests are tracked per MCP key - Contact support if you need higher limits for production workloads
Juspay MCP Tools
Interact with Juspay APIs for payment processing and merchant dashboard management.
Sensei MCP
Expert guidance for Dojo and Cairo development on Starknet, specializing in the Dojo ECS framework for building onchain worlds.
OpenAPI Invoker
Invokes any OpenAPI specification through a Model Context Protocol (MCP) server.
Text-To-GraphQL
MCP server for text-to-graphql, integrates with Claude Desktop and Cursor.
Remote MCP Server (Authless)
An example of a remote MCP server deployable on Cloudflare Workers, without authentication.
CLI MCP Server
A secure MCP server for executing controlled command-line operations with comprehensive security features.
MCPHost
A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP).
Roslyn MCP Server
A C# MCP server using Microsoft's Roslyn compiler for code analysis and navigation in C# codebases.
Mantis MCP Server
An MCP server for integrating with the Mantis Bug Tracker system.