platform-adapter-mcp
Provides tools for interacting with Bugcrowd's API to list programs, get program details, and retrieve scope assets for bug bounty programs.
Provides tools for interacting with HackerOne's API to list programs, get program details, and retrieve scope assets for bug bounty programs.
Provides tools for interacting with Intigriti's API to list programs, get program details, and retrieve scope assets for bug bounty programs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@platform-adapter-mcpShow bug bounty programs for example.com across all platforms."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
platform-adapter-mcp
A reference implementation of the adapter pattern for the Model Context Protocol (MCP) — the same architecture Claude Code uses internally to expose tools to its agent loop.
The reference wraps seven real-world REST/GraphQL APIs (HackerOne, Intigriti, Bugcrowd, Code4rena, Immunefi, YesWeHack, HackenProof) behind a single, uniform tool surface. Swap the adapters for CRMs, ATSs, finance APIs, internal services — the MCP layer doesn't change.
+---------------------------------+
| Claude Code / LLM agent | ← makes tool calls
+---------------------------------+
| MCP (JSON-RPC)
+---------------------------------+
| FastMCP server (server.py) | ← uniform tool surface
+---------------------------------+
|
+---------------------------------+
| Adapter registry (lazy) | ← one class per upstream API
+---------------------------------+
|
+------+------+------+------+-----+
| H1 | Bug | C4 | ... | CRM | ← platform-specific auth, rate limit,
+------+------+------+------+-----+ schema normalizationWhat this demonstrates
Adapter pattern in Python. One abstract base class (
adapters/base.py) withauthenticate,list_programs,get_program,get_scope. Every platform implements the same four methods against a different upstream schema.Lazy initialization. Adapters only spin up when first called and only if credentials are configured — same pattern you'd use for an MCP server that conditionally exposes Salesforce vs. HubSpot based on which credentials exist in the environment.
Schema normalization. Each platform returns data in a different shape (HackerOne: REST + GraphQL; Bugcrowd: GraphQL microservice; Code4rena: undocumented JSON; Immunefi: REST with quirky auth). They all map to the same
Program/ScopeAsset/Briefdataclasses consumed by the MCP tools.Prompt-driven tool design. Each
@mcp.tool()exposes a single high-level intent (cross_platform_scope("shopify.com")) rather than raw CRUD primitives — this is how you keep tool descriptions short and agent-friendly.
Related MCP server: HackerOne MCP Server
Why this matters for prompt-driven development
MCP is the standard tool protocol for Claude Code and most modern agent runtimes. Writing a thin MCP wrapper around any existing API turns that API into a callable tool the agent can use on its own. The same pattern works for:
CRMs (Salesforce, HubSpot, Pipedrive)
ATSs (Greenhouse, Lever, Workable)
Internal services (any authenticated REST API in your stack)
Finance/payment tools (Stripe, Mercury, Plaid)
The agent never needs to know the upstream API exists. It calls
find_account(domain="acme.com") and the adapter handles auth, retry,
and schema mapping.
Quick start
git clone https://github.com/Koslovski79/platform-adapter-mcp
cd platform-adapter-mcp
pip install -r requirements.txt
cp config.example.yaml config.yaml
# edit config.yaml with your platform credentials
python server.pyThen add to your MCP client (Claude Desktop, etc.):
{
"mcpServers": {
"platforms": {
"command": "python",
"args": ["/path/to/platform-adapter-mcp/server.py"],
"env": {"BB_CONFIG": "/path/to/platform-adapter-mcp/config.yaml"}
}
}
}The six @mcp.tool() functions become available immediately.
Layout
platform-adapter-mcp/
├── server.py # FastMCP server, 6 tools, lazy adapter registry
├── config.example.yaml # Platform credentials (copy to config.yaml)
├── adapters/
│ ├── base.py # Abstract adapter + Program/ScopeAsset/Brief models
│ ├── hackerone.py # H1 REST + GraphQL adapter (full)
│ ├── intigriti.py # Intigriti REST adapter (full)
│ ├── bugcrowd.py # Bugcrowd GraphQL adapter (full)
│ ├── code4rena.py # Code4rena REST adapter (full)
│ ├── immunefi.py # Immunefi REST adapter (full)
│ ├── yeswehack.py # YesWeHack REST adapter (stub)
│ └── stubs.py # Sherlock + HackenProof placeholder adapters
└── requirements.txtAdding a new platform
Create
adapters/newplatform.pyextendingBaseAdapter.Implement
authenticate(),list_programs(),get_program(),get_scope().Register the class in
ADAPTER_CLASSESinserver.py.Add a config block in
config.yaml.Done — the agent can now call the platform through the same six tools.
The same five steps add a new CRM, a new ATS, a new payment provider, or a new internal microservice.
Notes
No credentials ship in this repo.
config.example.yamlshows the structure; users copy it toconfig.yamland fill in their own keys.Adapters only activate when
enabled: trueAND valid credentials are present. The server logs which adapters come online at startup.The
rawfield on every returned model preserves the original API response, so agents can reach past the normalized model when needed without changing the adapter.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server for interacting with the Intigriti bug bounty platform's Researcher API. It enables AI assistants to manage bug bounty programs, submissions, and research workflow.84MIT
- AlicenseBqualityCmaintenanceEnables MCP clients like Claude and Codex to interact with HackerOne's API to list and get reports, programs, and scopes.21252MIT
- Alicense-qualityCmaintenanceEnables automated bug bounty hunting and security research with tools for reconnaissance, web vulnerability scanning, API testing, binary analysis, and mobile app analysis through an MCP interface.MIT
- Flicense-qualityCmaintenanceProvides a uniform MCP tool interface for multiple bug bounty platforms (HackerOne, Bugcrowd, etc.) using the adapter pattern, enabling LLM agents to query programs and scope across platforms.
Related MCP Connectors
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Search, document and execute authenticated API calls across 500+ apps via one MCP server
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Koslovski79/platform-adapter-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server