| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Run Softagram code analysis in a Docker container and query architectural intelligence via Model Context Protocol (MCP).
Claude (or any MCP-compatible AI assistant) can analyze your repositories and answer questions like:
The setup script walks you through login, repository selection, MCP configuration, and verification — all in one command:
./setup.shYou need credentials provided by Softagram. Contact support@softagram.com if you don't have them.
docker login registry.softagram.comEdit docker-compose.yml to mount your repositories (see Mounting Your Code), then:
docker compose up -dOr without Compose:
docker run -d --name softagram-analyzer \
--tmpfs /tmp:size=2G \
-v ~/code/my-project:/input/my-project:ro \
-p 8008:8008 \
registry.softagram.com/softagram-analyzer-mcp:latestAdd Softagram to your MCP configuration. If you don't have ~/.claude/mcp.json yet:
cp mcp.json.example ~/.claude/mcp.jsonIf you already have ~/.claude/mcp.json with other servers, merge the "softagram" entry into your existing mcpServers object — don't overwrite the file.
For project-specific configuration, copy to .mcp.json in the project root instead.
# Check the container is running
docker ps | grep softagram-analyzer
# Check the MCP server responds
curl -s -o /dev/null -w "%{http_code}" http://localhost:8008/mcp
# Any response (200, 405, etc.) means the server is up.
# "000" or connection refused means it's still starting — wait a few seconds.Start a new Claude Code session (needed to pick up MCP config), then:
You: "Analyze my project at /input/my-project" You: "What depends on the UserService class?" You: "What would break if I change the validate function?" You: "Show me the architecture of the auth module"
The container needs access to the repositories you want to analyze. Mount them under /input:
# docker-compose.yml — add your repos under volumes:
services:
analyzer:
volumes:
- ~/code/my-frontend:/input/my-frontend:ro
- ~/code/my-backend:/input/my-backend:roOr with docker run:
docker run -d --name softagram-analyzer \
-v ~/code/my-frontend:/input/my-frontend:ro \
-v ~/code/my-backend:/input/my-backend:ro \
-p 8008:8008 \
registry.softagram.com/softagram-analyzer-mcp:latestRepositories are mounted read-only (:ro) — the analyzer never modifies your code.
You can also analyze public repositories by URL without mounting:
"Analyze https://github.com/expressjs/express"
Analysis results are stored inside the container at /tmp/analysis-outputs. To keep them across container restarts:
# docker-compose.yml
services:
analyzer:
volumes:
- ./analysis-outputs:/tmp/analysis-outputsOnce connected, Claude has access to these tools:
| Tool | What it does |
|---|---|
| analyze_repo | Run full code analysis on a repository |
| get_analysis_status | List completed analyses |
| load_model | Load an analysis model for querying |
| search_elements | Find classes, functions, files by name |
| get_dependencies | What does X depend on? What depends on X? |
| get_structure | Explore the code hierarchy |
| analyze_change_impact | What breaks if I change X? |
| download_model | Export the analysis model |
1. "Analyze /input/my-backend" → runs full analysis, produces architectural model 2. "What does the OrderService depend on?" → loads model, searches for OrderService, queries outgoing dependencies 3. "What would break if I change the PaymentGateway interface?" → traces all direct and transitive dependents, grouped by file 4. "Show me the structure of the api/ directory" → displays file/class/function hierarchy
| Variable | Default | Description |
|---|---|---|
| MCP_PORT | 8008 | Port the MCP server listens on |
| MCP_TRANSPORT | streamable-http | Protocol: streamable-http or sse |
The default transport is Streamable HTTP — the current MCP standard for remote servers. It uses stateless HTTP POST requests and works well with proxies and load balancers.
Endpoint: http://localhost:8008/mcp
If your MCP client only supports SSE (legacy), set the environment variable:
# docker-compose.yml
services:
analyzer:
environment:
- MCP_TRANSPORT=sseSSE endpoint: http://localhost:8008/sse
# docker-compose.yml
services:
analyzer:
ports:
- "9090:8008"Update mcp.json accordingly:
{
"mcpServers": {
"softagram": {
"type": "streamable-http",
"url": "http://localhost:9090/mcp"
}
}
}Softagram analyzes dependencies, structure, and metrics for:
Python, Java, Kotlin, JavaScript, TypeScript, C#, F#, C/C++, Go, Dart, Ruby, PHP, Scala, Groovy, Swift, Objective-C, Haskell, Clojure, COBOL, MATLAB, and more.
After starting the container, check that the MCP server is responding:
curl -s -o /dev/null -w "%{http_code}" http://localhost:8008/mcpThen start a new Claude Code session and ask Claude to list available tools — you should see the Softagram tools (analyze_repo, get_dependencies, etc.).
Container won't start:
docker logs softagram-analyzer"Connection refused" on port 8008: Wait a few seconds after starting — the server needs time to initialize. Verify with: curl -s -o /dev/null -w "%{http_code}" http://localhost:8008/mcp
Analysis takes a long time: First analysis of a large codebase can take several minutes. Subsequent analyses are faster due to caching.
Image not found:
docker pull registry.softagram.com/softagram-analyzer-mcp:latestMCP tools not visible in Claude Code: Make sure ~/.claude/mcp.json (or .mcp.json) contains the "softagram" server entry, and that you started a new session after adding it.
This software is proprietary. See LICENSE for details. Usage requires a valid Softagram license.
| Back | FazBrowse Home | New Git URL |