loading…
Search for a command to run...
loading…
Provides AI agents with structured access to the OWASP Bug Logging Tool (BLT) ecosystem for logging bugs, triaging issues, and managing security workflows. It e
Provides AI agents with structured access to the OWASP Bug Logging Tool (BLT) ecosystem for logging bugs, triaging issues, and managing security workflows. It enables actions like submitting vulnerabilities, tracking contributor leaderboards, and awarding gamified bacon points through a unified interface.
An MCP (Model Context Protocol) server that provides AI agents and developers with structured access to the BLT (Bug Logging Tool) ecosystem. This server enables seamless integration with IDEs and chat interfaces to log bugs, triage issues, query data, and manage security workflows.
BLT-MCP implements the MCP standard, giving AI agents structured access to BLT through three powerful layers:
Access BLT data through standardized URIs:
blt://issues - All issues in the systemblt://issues/{id} - Specific issue detailsblt://repos - Tracked repositoriesblt://repos/{id} - Specific repository detailsblt://contributors - All contributorsblt://contributors/{id} - Specific contributor detailsblt://workflows - All workflowsblt://workflows/{id} - Specific workflow detailsblt://leaderboards - Leaderboard rankings and statisticsblt://rewards - Rewards and bacon pointsPerform actions on BLT:
AI-guided workflows for common security tasks:
npm install
npm run build
Create a .env file based on .env.example:
cp .env.example .env
Configure the following variables:
BLT_API_BASE=https://blt.owasp.org/api
BLT_API_KEY=your_api_key_here
To use this server with an MCP client (like Claude Desktop or Cline), add it to your MCP settings:
{
"mcpServers": {
"blt": {
"command": "node",
"args": ["/absolute/path/to/blt-mcp/dist/index.js"],
"env": {
"BLT_API_BASE": "https://blt.owasp.org/api",
"BLT_API_KEY": "your_api_key_here"
}
}
}
}
The server runs using stdio transport for MCP communication:
node dist/index.js
Once configured in your MCP client, you can interact with BLT through natural language:
"Submit a new critical vulnerability in the authentication system of repo 123"
The AI agent will use the submit_issue tool to create the issue.
"Show me the leaderboard"
The AI agent will read from blt://leaderboards to display the rankings.
"Help me triage this XSS vulnerability in the login form"
The AI agent will use the triage_vulnerability prompt to guide the analysis.
URI: blt://issues
Returns: JSON array of all issues
URI: blt://issues/{id}
Returns: JSON object with issue details
URI: blt://leaderboards
Returns: JSON object with leaderboard data
Submit a new issue to BLT.
Parameters:
title (string, required) - Issue titledescription (string, required) - Detailed descriptionrepo_id (string, optional) - Repository IDseverity (string, optional) - One of: low, medium, high, criticaltype (string, optional) - One of: bug, vulnerability, feature, otherExample:
{
"title": "XSS vulnerability in login form",
"description": "The login form is vulnerable to reflected XSS...",
"repo_id": "123",
"severity": "high",
"type": "vulnerability"
}
Award bacon points to a contributor.
Parameters:
contributor_id (string, required) - Contributor IDpoints (number, required) - Points to awardreason (string, required) - Reason for the awardUpdate the status of an issue.
Parameters:
issue_id (string, required) - Issue IDstatus (string, required) - One of: open, in_progress, resolved, closed, wont_fixcomment (string, optional) - Explanation for status changeAdd a comment to an issue.
Parameters:
issue_id (string, required) - Issue IDcomment (string, required) - Comment textGuides AI through vulnerability triage.
Arguments:
vulnerability_description (required) - Description of the vulnerabilityaffected_component (optional) - Affected component or systemCreates remediation plans for security issues.
Arguments:
issue_id (required) - Issue ID to create plan forcontext (optional) - Additional contextEvaluates security contributions.
Arguments:
contribution_id (required) - Contribution IDcontribution_type (optional) - Type of contributionSince BLT-MCP uses JSON-RPC 2.0 over stdio, below is an example request and response format.
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "submit_issue",
"arguments": {
"title": "Test issue from JSON-RPC",
"description": "This is a test issue created via raw JSON-RPC request.",
"severity": "low"
}
}
}
Example Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"message": "Issue submitted successfully"
}
}
Ensure you are running Node.js v18 or higher:
node -v
Make sure .env is properly configured:
BLT_API_BASE=https://blt.owasp.org/api
BLT_API_KEY=your_api_key_here
If dist/index.js is missing, run:
npm run build
For development, use watch mode to automatically rebuild on changes:
npm run watch
blt-mcp/
├── src/
│ └── index.ts # Main server implementation
├── dist/ # Compiled JavaScript (generated)
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
├── .env.example # Example environment configuration
└── mcp-config.json # Example MCP client configuration
Contributions are welcome! Please follow these guidelines:
MIT License - see LICENSE file for details
For issues, questions, or contributions, please visit:
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"blt-mcp": {
"command": "npx",
"args": []
}
}
}