Claude Code

Claude Code is Anthropic's CLI tool for Claude. It supports MCP servers via the claude mcp add command or a .mcp.json project file.


CLI Syntax

The general form of claude mcp add is (see Claude Code MCP docs):

claude mcp add [options] <name> <commandOrUrl> [args...]

The server <name> comes first. For a STDIO server, pass any -e KEY=value options (repeatable) after the name, then --, then the launch command. The -- stops Claude Code from reparsing the server's own flags as its own options, and -e stops consuming tokens at the --:

claude mcp add <name> -e KEY=value -- <command> [args...]

For an HTTP server, no -- is needed — pass the URL with --transport http:

claude mcp add --transport http <name> <url>

STDIO Mode (Recommended)

CLI

# JAR
claude mcp add solr-mcp \
    -e SOLR_URL=http://localhost:8983/solr/ \
    -- java -jar /absolute/path/to/solr-mcp-1.0.0-SNAPSHOT.jar

# Docker (local image — build first with ./gradlew jibDockerBuild)
claude mcp add solr-mcp \
    -- docker run -i --rm -e SOLR_URL=http://host.docker.internal:8983/solr/ \
    solr-mcp:latest

.mcp.json

Add to your project root:

JAR:

{
  "mcpServers": {
    "solr-mcp": {
      "type": "stdio",
      "command": "java",
      "args": ["-jar", "/absolute/path/to/solr-mcp-1.0.0-SNAPSHOT.jar"],
      "env": { "SOLR_URL": "http://localhost:8983/solr/" }
    }
  }
}

Docker (local image):

{
  "mcpServers": {
    "solr-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm",
               "-e", "SOLR_URL=http://host.docker.internal:8983/solr/",
               "solr-mcp:latest"]
    }
  }
}

Linux users: add "--add-host=host.docker.internal:host-gateway" to the args array.


HTTP Mode

Start the server in HTTP mode first (PROFILES=http java -jar build/libs/solr-mcp-1.0.0-SNAPSHOT.jar, or PROFILES=http ./gradlew bootRun), then:

CLI

claude mcp add --transport http solr-mcp http://localhost:8080/mcp

.mcp.json

{
  "mcpServers": {
    "solr-mcp": {
      "type": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

Secured HTTP (OAuth2)

Claude Code detects the OAuth2 challenge from the server and initiates the authorization flow automatically. The configuration is the same as unsecured HTTP.

See the HTTP security model for server-side OAuth2 setup.