kegg-mcp
README.md
# kegg-mcp
[](https://www.npmjs.com/package/kegg-mcp)
[](https://github.com/AriaShishegaran/kegg-mcp/actions/workflows/ci.yml)
[](./LICENSE)
[](https://nodejs.org)
[](https://www.typescriptlang.org)
[](https://modelcontextprotocol.io)
An [MCP](https://modelcontextprotocol.io) server that exposes the [KEGG](https://www.kegg.jp) REST API — pathways, genes, compounds, reactions, enzymes, diseases, drugs, modules, orthology, glycans, and BRITE hierarchies, with cross-database linking. **34 tools, 8 resource templates, runs over stdio.**
## Install
```bash
npm install -g kegg-mcp
```
…or run it once with no install:
```bash
npx -y kegg-mcp
```
> Requires Node.js ≥ 20.
## Connect your MCP client
Add a `kegg` server to your client config (Claude Desktop, Cursor, VS Code, Cline, …):
```json
{
"mcpServers": {
"kegg": {
"command": "npx",
"args": ["-y", "kegg-mcp"]
}
}
}
```
Prefer a global install? Use `"command": "kegg-mcp"` with no args.
## Highlights
- **34 tools** across every major KEGG database
- **8 resource templates** (`kegg://pathway/{id}`, `kegg://gene/{org}:{id}`, …)
- Polite rate limiting (≤ 3 req/s), retries with exponential backoff, 30 s timeouts, keep-alive
- Native `fetch` — zero runtime deps beyond the MCP SDK
- TypeScript, unit tests with real KEGG fixtures, live integration tests, CI on Node 20/22/24
## Quick examples
```
search_pathways(query="glycolysis")
get_pathway_info(pathway_id="hsa00010")
get_pathway_genes(pathway_id="hsa00010")
search_genes(query="insulin", organism_code="hsa")
get_gene_info(gene_id="hsa:3630", include_sequences=true)
search_compounds(query="glucose")
get_compound_info(compound_id="C00031")
convert_identifiers(source_db="hsa", target_db="ncbi-geneid")
batch_entry_lookup(entries=["hsa:3630", "hsa:3631"])
kegg_health_check()
```
## Tools (34)
**Info** — `get_database_info`, `list_organisms`
**Pathways** — `search_pathways`, `get_pathway_info`, `get_pathway_genes`, `get_pathway_compounds`, `get_pathway_reactions`
**Genes** — `search_genes`, `get_gene_info`, `get_gene_orthologs`
**Compounds** — `search_compounds`, `get_compound_info`, `get_compound_reactions`
**Reactions & enzymes** — `search_reactions`, `get_reaction_info`, `search_enzymes`, `get_enzyme_info`
**Disease & drugs** — `search_diseases`, `get_disease_info`, `search_drugs`, `get_drug_info`, `get_drug_interactions`
**Modules & orthology** — `search_modules`, `get_module_info`, `search_ko_entries`, `get_ko_info`
**Glycans & BRITE** — `search_glycans`, `get_glycan_info`, `search_brite`, `get_brite_info`
**Cross-db & batch** — `convert_identifiers`, `find_related_entries`, `batch_entry_lookup`
**Health** — `kegg_health_check`
## Resource templates (8)
`kegg://pathway/{pathway_id}` · `kegg://gene/{org}:{gene_id}` · `kegg://compound/{compound_id}` · `kegg://reaction/{reaction_id}` · `kegg://disease/{disease_id}` · `kegg://drug/{drug_id}` · `kegg://organism/{org_code}` · `kegg://search/{database}/{query}`
## Develop
```bash
git clone https://github.com/AriaShishegaran/kegg-mcp.git
cd kegg-mcp
npm install
npm run build # outputs to dist/
npm test # unit tests
npm run test:integration # live tests against rest.kegg.jp
```
| Script | What it does |
| --- | --- |
| `npm run build` | Compile to `dist/` |
| `npm run typecheck` | Type-check only |
| `npm run lint` | ESLint |
| `npm test` | Unit tests |
| `npm run test:integration` | Live tests against `rest.kegg.jp` |
| `npm start` | Run the server |
Releases are automated via [release-please](https://github.com/googleapis/release-please) from [Conventional Commits](https://www.conventionalcommits.org/). See [CONTRIBUTING.md](./CONTRIBUTING.md).
## KEGG API terms
`rest.kegg.jp` is **academic use only**. Commercial use requires a license from [Kanehisa Laboratories](https://www.kegg.jp/kegg/rest/keggapi.html).
## License
[MIT](./LICENSE) © Aria
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues