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/sandraschi/speech-mcp/agents-mdgit clone --depth 1 https://github.com/sandraschi/speech-mcpWrote 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/sandraschi/speech-mcp/agents-md)<a href="https://agentmods.dev/instructions/sandraschi/speech-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/sandraschi/speech-mcp/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.01384 | $0.01384 |
| Opus 5 | $0.00692 | $0.00692 |
| Sonnet 5 | $0.00277 | $0.00277 |
| Haiku 4.5 | $0.00138 | $0.00138 |
Grade A, and why
speech-mcp 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 — 125 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md — speech-mcp
Rules for AI coding agents (Claude, Cursor, Windsurf, Goose) working on this repo.
Project Identity
- Name: speech-mcp
- Purpose: Multi-provider speech gateway — Gemini Live, Hume AI, ElevenLabs TTS + voice cloning
- Owner: Sandra Schipal, Vienna
- Fleet role: Voice AI bridge for the entire fleet — TTS, STT, wake word, RAG
Architecture Quick Reference
FastMCP stdio server <──> Claude Desktop / MCP clients
│
FastAPI REST :10909 <──> React/Vite frontend :10908
│
MCP SSE :10909/mcp <──> Bridge target for ProxyProvider
│
Providers (configured via .env)
├── Gemini 3.1 Flash TTS (GOOGLE_API_KEY)
├── Hume AI Octave + EVI (HUME_API_KEY)
├── ElevenLabs TTS + Cloning (ELEVENLABS_API_KEY)
├── Gemma 4 local (no key required)
└── Windows SAPI5 (no key required)
│
LanceDB (RAG) ← data/lancedb/
│
openWakeWord (local wake word) ← no API key required
Ports
| Service | Port |
|---|---|
| Frontend (Vite) | 10908 |
| Backend (FastAPI + MCP SSE) | 10909 |
Code Rules
Python
- Python 3.12+ — use modern type hints (
str | None,TypeAlias) - Async-first: all MCP tools must be
async def— no blocking on event loop - Type annotations: all tool params use
Annotated[T, Field(description="...")]— noArgs:blocks - No global state except
_timersand_log_queueinserver.py - Logging: use
logging.getLogger(__name__)— neverprint() - Line length: 120 chars (ruff enforces)
Tool Registration
- Tools registered via
@mcp.tool()decorator in domain modules undersrc/speech_mcp/tools/ - Portmanteau imports re-exported in
src/speech_mcp/tools/__init__.py - All tools return
{"success": bool, ...}dict - List/status/stats tools use
@mcp.tool(app=True)with Prefab UI - Long-running tools use
@mcp.tool(task=True)(background tasks)
Docstrings
- Summary: 1-3 lines
## Return Format: explicit JSON structure## Examples: 1-3 concrete calls- No
Args:blocks — useAnnotatedin signatures
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 · 125 lines · 1,384 tokens per session scan A b17b466c13b2
speech-mcp AGENTS.md is an instructions file published in the GitHub repository sandraschi/speech-mcp (2 stars, last pushed 16d ago), licensed MIT. It adds 1,384 tokens to every session, about $0.0069 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
sayna CLAUDE.md
Instructions for SaynaAI/sayna, covering claude.md, project overview, development commands, feature flags and high-level architecture.
cadence-code AGENTS.md
AGENTS.md instructions for michael-L-i/cadence-code, covering agent guide, project overview, plugin layout, important paths and local commands.
cadence-code CLAUDE.md
Claude Code instructions for michael-L-i/cadence-code, covering claude code guide, project summary, claude-specific flow and working expectations.
noisy-coding CLAUDE.md
Claude Code instructions for noisy/noisy-coding, covering noisy-coding — agent notes, local development setup, key docs, releasing and restarting the daemon.
AI_Secretary_System CLAUDE.md
Claude Code instructions for ShaerWare/AI_Secretary_System, covering claude.md, project overview, commands, build & run and docker (recommended).
cc-hooks CLAUDE.md
Instructions for husniadil/cc-hooks, covering claude.md, documentation structure, best practices, pep 723 for standalone scripts and /// script.