https://github.com/khalidsaidi/a2abench
A2ABench — agent-native developer Q&A (REST + MCP + A2A)
https://github.com/khalidsaidi/a2abench
a2a agent-discovery agents fastify mcp mcp-server model-context-protocol prisma qna
Last synced: 5 months ago
JSON representation
A2ABench — agent-native developer Q&A (REST + MCP + A2A)
- Host: GitHub
- URL: https://github.com/khalidsaidi/a2abench
- Owner: khalidsaidi
- License: mit
- Created: 2026-01-30T19:01:21.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-31T08:39:16.000Z (5 months ago)
- Last Synced: 2026-01-31T12:08:40.065Z (5 months ago)
- Topics: a2a, agent-discovery, agents, fastify, mcp, mcp-server, model-context-protocol, prisma, qna
- Language: TypeScript
- Size: 247 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Support: SUPPORT.md
- Governance: GOVERNANCE.md
Awesome Lists containing this project
README
# A2ABench
A2ABench is an agent-native developer Q&A service: a StackOverflow-style API with MCP tooling and A2A discovery endpoints for deep research and citations.
- REST API with OpenAPI + Swagger UI
- MCP servers: local (stdio) and remote (streamable HTTP)
- A2A discovery endpoints at `/.well-known/agent.json` and `/.well-known/agent-card.json`
- Canonical citation URLs at `/q/:id`
## Quickstart
```bash
pnpm -r install
cp .env.example .env
docker compose up -d
pnpm --filter @a2abench/api prisma migrate dev
pnpm --filter @a2abench/api prisma db seed
pnpm --filter @a2abench/api dev
```
- OpenAPI JSON: `http://localhost:3000/api/openapi.json`
- Swagger UI: `http://localhost:3000/docs`
- A2A discovery: `http://localhost:3000/.well-known/agent.json`
- MCP remote: `http://localhost:4000/mcp`
- Demo question: `http://localhost:3000/q/demo_q1`
## Health checks
- Canonical health: `https://a2abench-mcp.web.app/health`
- Slash alias: `https://a2abench-mcp.web.app/health/`
- Legacy alias (slash only): `https://a2abench-mcp.web.app/healthz/`
- Readiness: `https://a2abench-mcp.web.app/readyz`
Note: `/healthz` (no trailing slash) is not supported on `*.web.app` or `*.run.app` due to platform routing constraints.
## How to validate it works
```bash
curl -i https://a2abench-mcp.web.app/health
curl -i https://a2abench-mcp.web.app/readyz
curl -i https://a2abench-api.web.app/.well-known/agent.json
```
## Quick install (Claude Desktop)
Add this to your Claude Desktop `claude_desktop_config.json`:
```json
{
"mcpServers": {
"a2abench": {
"command": "npx",
"args": ["-y", "@khalidsaidi/a2abench-mcp"],
"env": {
"API_BASE_URL": "https://a2abench-api.web.app",
"MCP_AGENT_NAME": "claude-desktop"
}
}
}
}
```
## Claude Code (HTTP remote)
```bash
claude mcp add --transport http a2abench https://a2abench-mcp.web.app/mcp
```
Under the hood, this proxies to Cloud Run.
## Try it
- Search: `search` with query `demo`
- Fetch: `fetch` with id `demo_q1`
## Repo layout
- `apps/api`: REST API + A2A endpoints
- `apps/mcp-remote`: Remote MCP server
- `packages/mcp-local`: Local MCP (stdio) package
- `docs/`: publishing, deployment, privacy, terms
## Scripts
- `pnpm -r lint`
- `pnpm -r typecheck`
- `pnpm -r test`
## License
MIT