Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/cassiaresearch/aircall-mcp-server/agents-mdgit clone --depth 1 https://github.com/CassiaResearch/aircall-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/cassiaresearch/aircall-mcp-server/agents-md)<a href="https://agentmods.dev/instructions/cassiaresearch/aircall-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/cassiaresearch/aircall-mcp-server/agents-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.02292 | $0.02292 |
| Opus 5 | $0.01146 | $0.01146 |
| Sonnet 5 | $0.00458 | $0.00458 |
| Haiku 4.5 | $0.00229 | $0.00229 |
Grade A, and why
aircall-mcp-server AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 157 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Aircall MCP Server
Type: Single-package TypeScript MCP server (stdio transport)
Framework: @modelcontextprotocol/sdk + zod, compiled with TypeScript 6.0 (NodeNext ESM)
Purpose: Exposes the Aircall Public API as 83 MCP tools, distributed to non-technical users as a one-click Claude Desktop extension (.mcpb)
Overview
Maintained by Cassia Research. Wraps https://api.aircall.io/v1 (and selected /v2 endpoints) with Basic auth, client-side rate limiting, and per-tool MCP annotations so clients like Claude Desktop can group read-only tools (36) apart from write tools (47) and gate destructive ones.
Commands
npm install # install all deps (dev included)
npm run build # tsc -> dist/
npm run dev # tsc --watch
npm start # run the built server (needs AIRCALL_API_ID/AIRCALL_API_TOKEN)
npm run lint # eslint src (flat config, eslint 10) — 2 no-console warnings in
# src/index.ts are EXPECTED (intentional CLI output); do not "fix" them
npm run lint:fix # eslint with autofix
npm run typecheck # tsc --noEmit
npm run docs # regenerate docs/tools/README.md from the BUILT server (build first)
npm run bundle # full pipeline: install -> build -> prune prod -> pack aircall-mcp.mcpb (~2.7MB) -> reinstall dev deps
There is NO test suite (npm test does not exist). Verification is the stdio smoke test below —
expect an initialize response naming aircall-mcp-server and a tools/list of 83 tools (36 in
read-only mode with AIRCALL_READ_ONLY=true):
(printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}'; sleep 2) \
| AIRCALL_API_ID=test AIRCALL_API_TOKEN=test node dist/index.js
Directory Structure
src/
index.ts CLI entry: --api-id/--api-token/--tools/--read-only flags + env fallbacks
server.ts AircallMCPServer: registration, category/read-only filtering, MCP handlers,
buildAnnotations(); exports TOOL_CATEGORIES
tools/
calls.ts 24 tools incl. transcription + all Conversation Intelligence endpoints
contacts.ts 12 tools (CRUD + phone/email management)
users.ts 10 tools (CRUD, availability, start_call, dial, v2 user numbers)
teams.ts 6 tools
numbers.ts 5 tools (update_messages goes through PUT /numbers/:id)
tags.ts 5 tools
webhooks.ts 5 tools
messages.ts 5 tools (send via /numbers/:id/messages/send + configuration)
dialer.ts 6 tools (campaigns are PER-USER: /users/:user_id/dialer_campaign)
company.ts 5 tools (ping, company, integration enable/disable)
types/aircall.ts API response types + READ_ONLY_TOOLS / WRITE_TOOLS registries
utils/
auth.ts AircallClient: Basic auth, /v1 base ('/v2/...' paths hit v2), error handling
format.ts toIso(): safe timestamp conversion
rate-limiter.ts client-side limiter (Aircall allows 60 req/min)
scripts/
generate-tool-docs.mjs spawns dist/index.js, dumps tools/list into docs/tools/README.md
docs/ guides + generated tool reference
manifest.json MCPB extension manifest (user_config form, env mapping)
.mcpbignore what stays out of the .mcpb bundle
.github/workflows/release.yml tag-triggered release (builds + attaches .mcpb)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 157 lines · 2,292 tokens per session scan A 653141c806f5
aircall-mcp-server AGENTS.md is an instructions file published in the GitHub repository CassiaResearch/aircall-mcp-server (0 stars, last pushed 25d ago), licensed MIT. It adds 2,292 tokens to every session, about $0.0115 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).