Platform Adapter
БесплатноНе проверенWraps multiple bug bounty platform APIs (HackerOne, Bugcrowd, etc.) behind a uniform MCP tool surface, enabling LLM agents to query programs, scope, and briefs
Описание
Wraps multiple bug bounty platform APIs (HackerOne, Bugcrowd, etc.) behind a uniform MCP tool surface, enabling LLM agents to query programs, scope, and briefs across platforms through a single interface.
README
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 normalization
What 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.
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.py
Then 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.txt
Adding 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.
Установка Platform Adapter
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Koslovski79/platform-adapter-mcpFAQ
Platform Adapter MCP бесплатный?
Да, Platform Adapter MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Platform Adapter?
Нет, Platform Adapter работает без API-ключей и переменных окружения.
Platform Adapter — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Platform Adapter в Claude Desktop, Claude Code или Cursor?
Открой Platform Adapter на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Platform Adapter with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
