MCP Setup (Quick Start)
This guide covers setting up the Maven-related MCP servers.
Prerequisites
-
Claude Code (or another MCP-compatible client) installed
-
Docker Desktop (or Podman) installed and running
-
Node.js 18+ with npm/npx (for GitHub MCP)
See Prerequisites for detailed installation instructions.
Overview
Each MCP server is optional - install only those you need:
- Mail MCP
-
Access to Apache Maven mailing list archives (dev@ and users@). No account required (public archives).
- GitHub MCP
-
Access to Maven repositories, issues, and pull requests. Requires GitHub account with Personal Access Token.
- Atlassian MCP
-
Access to Apache Confluence and Jira. Requires Apache Confluence and/or Jira accounts with PATs.
- Maven Tools MCP
-
Maven Central dependency intelligence (versions, health analysis). No account required (public repository).
| Having multiple MCPs enables cross-MCP orchestration: following references across data sources (e.g., finding mail discussions about a GitHub issue). See Advanced Usage for details. |
Mail MCP
The Mail MCP provides access to Apache Maven mailing list archives (dev@ and users@). It runs as a persistent Docker service and is accessed via Streamable HTTP transport.
Setup
# Create directory and download docker-compose.yml
mkdir -p mail-mcp && cd mail-mcp
curl -O https://raw.githubusercontent.com/support-and-care-labs/mail-mcp/main/docker-compose.yml
# Start all services (Elasticsearch + MCP server + scheduler)
docker compose up -d
For local development or contributing, see Mail MCP Detailed Setup which covers cloning the full repository.
Initial Data Retrieval
Before using the MCP, retrieve the mailing list archives. This can be done entirely via Docker (no local Python installation required):
# Retrieve dev@ mailing list archives (2002-present, ~700MB)
for year in $(seq 2002 $(date +%Y)); do
for month in $(seq -w 1 12); do
docker compose exec scheduler retrieve-mbox --date ${year}-${month} || true
done
done
# Index all downloaded mbox files
docker compose exec scheduler index-mbox --directory /app/data/dev/
This example retrieves dev@maven.apache.org.
For users@maven.apache.org, add --list users@maven.apache.org --output-dir /app/data/users to the retrieve command.
See Mail MCP Detailed Setup for complete instructions.
The scheduler container automatically updates the current month’s archive hourly.
Verify
# Check services are running
docker compose ps
# Should show elasticsearch, mail-mcp, and scheduler services
# Check Elasticsearch has data
curl http://localhost:59200/maven-dev/_count
Add to Claude Code
The Mail MCP server runs permanently and is accessed via Streamable HTTP:
claude mcp add maven-mail -s user --transport http http://localhost:58080/mcp
| Ensure the mail-mcp Docker services are running before starting Claude Code. |
For detailed configuration, see Mail MCP Detailed Setup.
GitHub MCP
The GitHub MCP provides access to Maven repositories, issues, and pull requests.
Create GitHub PAT
-
Go to GitHub Settings > Tokens
-
Click "Generate new token (classic)"
-
Select scope:
public_repo(sufficient for Apache Maven public repositories) -
Copy the generated token
Add to Claude Code
claude mcp add github -s user \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-- npx -y @modelcontextprotocol/server-github
GitHub MCP uses npx as there is no official Docker image yet.
The name github (without maven- prefix) reflects that this MCP is not Maven-specific.
|
For detailed configuration, see GitHub MCP Detailed Setup.
Atlassian MCP
The Atlassian MCP provides access to Apache Confluence and Jira.
Create Personal Access Tokens
Apache uses Atlassian Server/Data Center (not Cloud). PATs are generated separately in each application:
- Confluence PAT
-
-
Log in to Apache Confluence
-
Go to Profile (top right) → Settings → Personal Access Tokens
-
Click "Create token", set a name and expiry
-
Copy the generated token
-
- Jira PAT
-
-
Log in to Apache Jira
-
Go to Profile (top right) → Personal Access Tokens
-
Click "Create token", set a name and expiry
-
Copy the generated token
-
Add to Claude Code
-
Set your tokens as shell variables:
CONFLUENCE_PERSONAL_TOKEN=<your-confluence-pat> JIRA_PERSONAL_TOKEN=<your-jira-pat> -
Run the
claude mcp addcommand (copy-paste as-is):claude mcp add maven-atlassian -s user \ -e CONFLUENCE_URL=https://cwiki.apache.org/confluence \ -e CONFLUENCE_PERSONAL_TOKEN=$CONFLUENCE_PERSONAL_TOKEN \ -e JIRA_URL=https://issues.apache.org/jira \ -e JIRA_PERSONAL_TOKEN=$JIRA_PERSONAL_TOKEN \ -e 'JIRA_PROJECTS_FILTER=ARCHETYPE,DOXIA,DOXIASITETOOLS,DOXIATOOLS,JXR,MJARSIGNER,MACR,MANTRUN,MARCHETYPES,MARTIFACT,MASFRES,MASSEMBLY,MBUILDCACHE,MCHANGELOG,MCHANGES,MCHECKSTYLE,MCLEAN,MCOMPILER,MDEP,MDEPLOY,MDOAP,MEAR,MEJB,MENFORCER,MGPG,MINDEXER,MINSTALL,MINVOKER,MJAR,MJAVADOC,MJDEPRSCAN,MJDEPS,MJLINK,MJMOD,MLINKCHECK,MNG,MNGSITE,MPH,MPIR,MPLUGIN,MPLUGINTESTING,MPMD,MPOM,MRAR,MRELEASE,MRESOLVER,MRESOURCES,MRRESOURCES,MSCMPUB,MSCRIPTING,MSHADE,MSHARED,MSITE,MSKINS,MSOURCES,MSTAGE,MTOOLCHAINS,MVERIFIER,MWAR,MWRAPPER,SCM,SUREFIRE,WAGON' \ -- docker run -i --rm \ -e CONFLUENCE_URL -e CONFLUENCE_PERSONAL_TOKEN \ -e JIRA_URL -e JIRA_PERSONAL_TOKEN -e JIRA_PROJECTS_FILTER \ ghcr.io/sooperset/mcp-atlassian:latest
For detailed configuration, see Atlassian MCP Detailed Setup.
Maven Tools MCP
The Maven Tools MCP provides Maven Central dependency intelligence - version lookups, health analysis, and upgrade recommendations.
Add to Claude Code
claude mcp add maven-tools -s user \
-- docker run -i --rm arvindand/maven-tools-mcp:latest
No authentication is required as Maven Central is a public repository.
For detailed configuration and available tools, see Maven Tools MCP Detailed Setup.
Verify Installation
After adding MCPs, verify they are configured:
claude mcp list
You should see all configured MCP servers listed.
Next Steps
-
Advanced Usage - Cross-MCP orchestration and examples
-
LLM and MCP Overview - Understanding how MCPs work