dura-mcp
v1.0.2
Published
MCP server for DURA - Dependency Update Risk Analyzer. Integrates with Cline and other AI assistants.
Maintainers
Readme
DURA MCP Server
MCP (Model Context Protocol) server for DURA – Dependency Update Risk Analyzer. modelcontextprotocol
Integrates DURA's dependency analysis capabilities with AI coding assistants (Cline, Cursor, Claude Code, Continue.dev, etc.) and desktop apps like Claude Desktop that support MCP servers. modelcontextprotocol
Quick Start
1. Installation
# Global install (recommended)
npm install -g dura-mcp
# Or use npx (no install needed)
npx dura-mcpThe MCP server internally uses dura-kit to perform dependency analysis. github
2. Generic MCP Configuration (All Major Clients)
Add this entry to your AI agent’s MCP configuration (the exact file/setting path differs per client, but the JSON structure is the same): modelcontextprotocol
{
"mcpServers": {
"dura": {
"command": "npx",
"args": ["dura-mcp"],
"cwd": "${workspaceFolder}"
}
}
}This pattern works for:
- Cline (VS Code)
- Cursor
- Claude Desktop / Claude Code
- Continue.dev
- Other MCP-compatible IDE and desktop clients that accept an
mcpServersJSON block. airbyte
cwd is set to ${workspaceFolder} so the server runs relative to your current project and can resolve local dependencies or configuration correctly. github
| Client | Config Location |
|--------|-----------------|
| Cline | VS Code Settings → MCP |
| Cursor | Settings → MCP Servers |
| Claude Desktop | ~/Library/Application Support/Claude/ |
| Continue.dev | ~/.continue/mcp.json |
| Roo Code | Settings → Tools |
491+ MCP clients - Full list
Configuration Fallbacks
If npx dura-mcp does not work in your environment, you can fall back to local or absolute paths as needed. zuplo
Option A: Local Project Install
Install locally in your project:
npm install dura-mcpThen configure:
{
"mcpServers": {
"dura": {
"command": "node",
"args": ["./node_modules/.bin/dura-mcp"],
"cwd": "${workspaceFolder}"
}
}
}Option B: Absolute Path
Useful for global or non-standard installs:
{
"mcpServers": {
"dura": {
"command": "node",
"args": ["/full/path/to/your/project/node_modules/.bin/dura-mcp"],
"cwd": "/full/path/to/your/project"
}
}
}Option C: Global Binary
If npm install -g dura-mcp is used and dura-mcp is on your PATH: github
{
"mcpServers": {
"dura": {
"command": "dura-mcp"
}
}
}Verifying the Server in Terminal
From your project root (the same directory used as cwd):
# 1) Start the server
npx dura-mcp
# 2) List tools via MCP
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx dura-mcp
# 3) Call a tool directly
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_risk_summary","arguments":{"repoUrl":"https://github.com/expressjs/express"}}}' | npx dura-mcpIf everything is wired correctly, you should see a JSON response listing four tools on tools/list and a structured result for get_risk_summary rather than an internal error. github
Available Tools
The DURA MCP server provides four tools for dependency risk analysis. github
1. analyze_repository
Complete dependency analysis with detailed risk assessment and actionable recommendations.
Parameters
repoUrl(required): GitHub repository URL, for examplehttps://github.com/facebook/reactbranch(optional): Git branch to analyze, defaultmainuseCache(optional): Use cached results if available, defaulttrue
Returns
- Overall health score and risk summary
- Critical issues requiring attention
- Breaking changes with evidence
- Prioritized action items
- Suggested update order
2. get_high_risk_dependencies
Focuses on only the highest-risk dependencies that require immediate attention.
Parameters
repoUrl(required): GitHub repository URLbranch(optional): Git branch, defaultmain
Returns
- List of high-risk dependencies
- Explanation of why each is high risk
- Specific recommendations and priority guidance
3. get_breaking_changes
Returns only dependencies with confirmed breaking changes.
Parameters
repoUrl(required): GitHub repository URLbranch(optional): Git branch, defaultmain
Returns
- Dependencies with confirmed breaking changes
- Confidence scores and supporting evidence from release notes
- Migration and upgrade guidance
4. get_risk_summary
Lightweight health check and risk overview.
Parameters
repoUrl(required): GitHub repository URLbranch(optional): Git branch, defaultmain
Returns
- Health score (0–100)
- Risk distribution (high/medium/low)
- Overall status and recommendation
Typical AI Usage Patterns
These examples illustrate how AI assistants tend to use the tools; they are not strict requirements: github
- Quick check:
“Is it safe to update my dependencies?” →get_risk_summary - Deep audit:
“Analyze dependencies for https://github.com/expressjs/express” →analyze_repository - Critical-only view:
“What are the risky dependencies in React?” →get_high_risk_dependencies - Upgrade planning:
“What breaking changes do I need to worry about?” →get_breaking_changes
How It Works
- The AI assistant receives a dependency-related question.
- The MCP client lists available tools from the DURA MCP server.
- The AI chooses the appropriate tool (full analysis, high-risk only, breaking changes, or summary).
- The MCP server runs the
dura-kitCLI to analyze the target repository. github - Results are normalized into structured JSON and returned via MCP.
- The AI formats the findings into natural language and follow-up recommendations.
Caching Behavior
The MCP server caches repository analyses for one hour: github
- First query: Fetches fresh data, typically a few seconds.
- Repeated queries: Served from cache for the same repository and branch.
- Cache expiry: After one hour, the next call re-runs analysis.
- Manual refresh: Set
useCache: falseforanalyze_repositoryto force a fresh run.
Cache is shared across tools, so one full analysis speeds up subsequent summary or filtered calls for the same repository. github
Requirements
- Node.js 18.0.0 or higher
- Internet access (GitHub and npm APIs)
- Currently supports public GitHub repositories with a
package.jsonin the root directory github
Troubleshooting
Command Not Found: dura-mcp
npm install -g dura-mcp
which dura-mcpEnsure the printed path is on your PATH and update your configuration to use either dura-mcp (global) or npx dura-mcp as described above. github
MCP Client Does Not Show Tools
- Confirm your config uses one of the working patterns above (especially
cwd). - Restart the client fully after editing MCP config.
- Open the client’s developer tools/console and check for spawn errors or path issues. docs.cline
Server Runs But Calls Fail
- Run
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx dura-mcpfrom the same directory ascwd. - If this fails, adjust
cwdandargsuntil terminal tests succeed, then mirror that in your MCP config. modelcontextprotocol
Analysis Errors
- Verify the repository URL is public and valid.
- Ensure the repo contains
package.jsonat the root. - Test the underlying CLI directly:
npx dura-kit https://github.com/owner/repogithub
Development
Running from Source
git clone https://github.com/ArchieTansaria/dura.git
cd dura/mcp
npm install
node server.jsThe server starts and waits for MCP JSON-RPC messages on stdin. github
Testing with MCP Inspector
npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector node server.jsUse the inspector UI to list tools, call each one, and inspect responses. modelcontextprotocol
Local Development with an MCP Client
cd dura/mcp
npm link
# Then in your MCP client config:
{
"mcpServers": {
"dura": {
"command": "dura-mcp"
}
}
}Links
- DURA CLI: dura-kit on npm
- GitHub Repository: ArchieTansaria/dura
- MCP Documentation: Model Context Protocol
- Issues: GitHub Issues
License
MIT License – see the LICENSE file for details.
