devhub-mcp
MCP server for OpenDev Gitea and Gerrit APIs, enabling repository browsing, code review, and change management for LLM agents.
README
DevHub MCP Server
Unified MCP gateway. All developer tools exposed as a single MCP stdio endpoint via Docker.
Architecture
main.py — Master gateway (single MCP stdio process)
mcp_servers/
middleware.py — Aggregates local sub-server tools into hub
proxy.py — Proxies remote MCP servers into hub
gerrit.py — OpenDev/Gerrit (direct API, runs standalone too)
jenkins.py — Jenkins CI (direct API, runs standalone too)
Tool Sources
| Source | Tools | Method |
|---|---|---|
| Gerrit/Gitea | 21 | Direct API calls |
| Jenkins | 17 | Direct API calls |
| Confluence | 11 | Proxied from remote MCP server |
| Jira | 19 | Proxied from remote MCP server |
| Excalidraw | 5 | Proxied from remote MCP server |
| healthz | 1 | Built-in |
| Total | 74 |
Secrets
All secrets stored in ~/.secrets and sourced into shell:
# ~/.secrets
export GERRIT_USER="your-user"
export GERRIT_HTTP_PASSWORD="your-pass"
export JENKINS_URL="http://jenkins.example.com/"
export JENKINS_USER="your-user"
export JENKINS_API_TOKEN="your-token"
Source before use: source ~/.secrets
No secrets needed for Confluence, Jira, or Excalidraw — they're proxied from public MCP endpoints that handle their own auth.
Quick Start
source ~/.secrets
make build
make test-docker
Makefile
make build # Build Docker image
make run # Run gateway (stdio)
make up # docker compose up -d
make down # docker compose down
make test # Tests locally
make test-docker # Tests in container
make healthz # Health check
make lint # Lint all files
make clean # Remove image
make help # Show targets
MCP Client Config
Kiro (~/.kiro/settings/mcp.json)
{
"mcpServers": {
"gateway": {
"command": "docker",
"args": ["compose", "-f", "/path/to/docker-compose.yml", "run", "--rm", "-i", "gateway"],
"env": {
"GERRIT_USER": "${GERRIT_USER}",
"GERRIT_HTTP_PASSWORD": "${GERRIT_HTTP_PASSWORD}",
"JENKINS_URL": "${JENKINS_URL}",
"JENKINS_USER": "${JENKINS_USER}",
"JENKINS_API_TOKEN": "${JENKINS_API_TOKEN}"
},
"type": "stdio",
"timeout": 120000
}
}
}
Adding a New Sub-Server
Local (direct API):
- Create
mcp_servers/myservice.pywithmcp = FastMCP("myservice")and@mcp.tool()functions - In
main.py:load_subserver(hub_mcp, myservice_mcp, namespace="myservice")
Remote (proxy from existing MCP server):
- In
main.py, add URL toREMOTE_SERVERSdict - That's it — tools are discovered and proxied automatically
Standalone Mode
Each local sub-server runs independently:
python mcp_servers/gerrit.py
python mcp_servers/jenkins.py
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.