BLT-MCP
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.
README
BLT-MCP
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.
Overview
BLT-MCP implements the MCP standard, giving AI agents structured access to BLT through three powerful layers:
š Resources (blt:// URIs)
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 points
š ļø Tools
Perform actions on BLT:
- submit_issue - Report new bugs and vulnerabilities
- award_bacon - Award bacon points to contributors (gamification)
- update_issue_status - Change issue status (open, in_progress, resolved, closed, wont_fix)
- add_comment - Add comments to issues
š” Prompts
AI-guided workflows for common security tasks:
- triage_vulnerability - Guide AI through vulnerability triage and severity assessment
- plan_remediation - Create comprehensive remediation plans for security issues
- review_contribution - Evaluate contributions with quality assessment and bacon point recommendations
Features
- ā JSON-RPC 2.0 - Standard protocol for reliable communication
- ā OAuth/API Key Authentication - Secure access to BLT endpoints
- ā Unified Interface - Single agent-friendly interface to all BLT functionality
- ā Autonomous Workflows - Enable AI agents to work independently
- ā Gamification Support - Built-in support for BLT's bacon point system
- ā Security-First - Designed for vulnerability management and security workflows
Installation
Prerequisites
- Node.js 18 or higher
- npm or yarn
Install Dependencies
npm install
Build
npm run build
Configuration
Environment Variables
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
MCP Client Configuration
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"
}
}
}
}
Usage
Running the Server
The server runs using stdio transport for MCP communication:
node dist/index.js
Using with AI Agents
Once configured in your MCP client, you can interact with BLT through natural language:
Example: Submitting an Issue
"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.
Example: Accessing Resources
"Show me the leaderboard"
The AI agent will read from blt://leaderboards to display the rankings.
Example: Using Prompts
"Help me triage this XSS vulnerability in the login form"
The AI agent will use the triage_vulnerability prompt to guide the analysis.
API Reference
Resources
List All Issues
URI: blt://issues
Returns: JSON array of all issues
Get Specific Issue
URI: blt://issues/{id}
Returns: JSON object with issue details
Leaderboards
URI: blt://leaderboards
Returns: JSON object with leaderboard data
Tools
submit_issue
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, other
Example:
{
"title": "XSS vulnerability in login form",
"description": "The login form is vulnerable to reflected XSS...",
"repo_id": "123",
"severity": "high",
"type": "vulnerability"
}
award_bacon
Award bacon points to a contributor.
Parameters:
contributor_id(string, required) - Contributor IDpoints(number, required) - Points to awardreason(string, required) - Reason for the award
update_issue_status
Update 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 change
add_comment
Add a comment to an issue.
Parameters:
issue_id(string, required) - Issue IDcomment(string, required) - Comment text
Prompts
triage_vulnerability
Guides AI through vulnerability triage.
Arguments:
vulnerability_description(required) - Description of the vulnerabilityaffected_component(optional) - Affected component or system
plan_remediation
Creates remediation plans for security issues.
Arguments:
issue_id(required) - Issue ID to create plan forcontext(optional) - Additional context
review_contribution
Evaluates security contributions.
Arguments:
contribution_id(required) - Contribution IDcontribution_type(optional) - Type of contribution
Development
Watch Mode
For development, use watch mode to automatically rebuild on changes:
npm run watch
Project Structure
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
Security Considerations
- API Keys: Never commit API keys to version control. Use environment variables.
- Access Control: Ensure proper authentication is configured for production use.
- Rate Limiting: Be mindful of API rate limits when making requests.
- Input Validation: The server validates all inputs before sending to the BLT API.
Contributing
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
License
MIT License - see LICENSE file for details
Support
For issues, questions, or contributions, please visit:
- GitHub: https://github.com/OWASP-BLT/BLT-MCP
- OWASP BLT: https://owasp.org/www-project-bug-logging-tool/
Acknowledgments
- Built on the Model Context Protocol
- Part of the OWASP BLT Project
- Powered by the security community
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.