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/openapi/mcp-server/copilot-instructionsgit clone --depth 1 https://github.com/openapi/mcp-serverWhat 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.01021 | $0.01021 |
| Opus 5 | $0.00511 | $0.00511 |
| Sonnet 5 | $0.00204 | $0.00204 |
| Haiku 4.5 | $0.00102 | $0.00102 |
Grade A, and why
mcp-server copilot-instructions.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 yesterday.
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 — 50 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Quick context for AI coding agents
This repository implements the Openapi.com MCP gateway (FastAPI + FastMCP). The server acts as a proxy that forwards a client's Bearer token to downstream Openapi services and exposes MCP tools implemented under src/openapi_mcp_sdk/apis/.
Key files
src/openapi_mcp_sdk/main.py— application entry point. Mounts the MCP app and contains HTTP endpoints/callbacksand/status/{request_id}. Shows how token query params are converted into an Authorization header.src/openapi_mcp_sdk/mcp_core.py— central FastMCP instance (mcp), helpermake_api_call(ctx, method, url, ...), andprocessPollingfor handling async callbacks.src/openapi_mcp_sdk/memory_store.py— in-memory + Memcached-backed callback result store. Exposesget_callback_resultandset_callback_resultand definesBASE_URL,callbackUrland memcached config from env vars.src/openapi_mcp_sdk/apis/— each module defines one or more tools decorated with@mcp.tool. Importing these modules triggers tool registration.
What matters for code changes
- Tools are registered when the
apismodules are imported bymain.py. Don't remove those imports unless you know how to re-register tools. make_api_callrelies on extracting the Authorization header from FastMCP internals orctx.request_context.request.headers. Many tools assume the client suppliedAuthorization: Bearer <token>(or?token=query param).- Async APIs use a callback workflow: downstream APIs accept a
callbackobject withurlandcustom(seecompany.py). Callbacks are saved withset_callback_resultand read withget_callback_result.
Common patterns and code examples
- Registering a tool (example from
company.py):- Add
@mcp.toolabove an async function withctx: Contextas last arg. - Use
make_api_call(ctx, "GET", url)to proxy authenticated requests.
- Add
- Creating an async callback request (company full profile):
- Build
custom_context = {"request_id": getSessionHash(ctx), ...} - POST to the downstream
.../callbackendpoint withcallback.url = memory store callbackUrlandcallback.custom = custom_context. - Use
processPolling(ctx, request_id, ...)to wait/poll stored results.
- Build
Environment and runtime
- Run locally:
python src/openapi_mcp_sdk/main.py(README showspython main.pyfrom project root; in this layout use the module path). The server binds to 0.0.0.0:PORT (readsPORTenv var, default 80). - Virtualenv: repository uses
uvin README butpyproject.tomlshowsrequires-python = ">=3.13". Note: README states Python 3.9+. If you modify runtime or CI, confirm the correct Python target.
Developer workflows (concrete)
- Start server (local):
- Create venv and install requirements (README):
uv venv && source .venv/bin/activate && uv pip install -r requirements.txt - Run:
python src/openapi_mcp_sdk/main.py(or useuvicornas inif __name__ == '__main__').
- Create venv and install requirements (README):
- Docker: see
Dockerfileand README. - Debugging tips:
- Check printed logs:
main.pyandmcp_core.make_api_callprint request details and errors. - Use
/status/{request_id}to inspect async request state set by callbacks. - If memcached calls fail, memory fallbacks provide predictable behavior.
- Check printed logs:
Conventions and gotchas for agents
- Do not add or hardcode secrets (tokens/keys) into code — this project explicitly expects the client to supply Bearer tokens. Keep token handling in middleware or test fixtures.
- When adding a new API/tool module:
- Follow the
@mcp.tooldecorator pattern and ensure the module is imported frommain.pyor otherwise registered during startup. - Prefer to call
make_api_callfor HTTP interactions so the common auth/header extraction is reused.
- Follow the
- The code expects
ctxto containrequest_context.request.headersin some places; use defensive checks when reading headers if you add new code paths.
What I couldn't verify automatically
- Exact developer commands for
uvusage and environment variants are described in README; confirm whether you preferpython -m venvflows oruvfor reproducibility. Also confirm the Python version (pyproject vs README).
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.
- yesterday First seen · 50 lines · 1,021 tokens per session scan A e9fc3494e34b
mcp-server copilot-instructions.md is an instructions file published in the GitHub repository openapi/mcp-server (19 stars, last pushed 25d ago), licensed MIT. It adds 1,021 tokens to every session, about $0.0051 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-30.
Other instructions, from other repositories
AionUi AGENTS.md
Instructions for iOfficeAI/AionUi, covering aionui - project guide, code conventions, file & directory structure, naming and ui library & icons.
ClawRouter CLAUDE.md
Instructions for BlockRunAI/ClawRouter, covering clawrouter, commands, project structure, key dependencies and conventions.
botmux CLAUDE.md
Instructions for deepcoldy/botmux, covering botmux, 构建 & 运行, bun 开发链路, worktree 的 nodemodules:共享还是独立(改前必读) and 编译态(单文件二进制)注意.
codedb AGENTS.md
Instructions for justrach/codedb, covering codedb agent guidelines, what codedb is (and isn't), review guidelines, pre-merge verification and security-sensitive areas.
SearChat CLAUDE.md
Claude Code instructions for yokingma/SearChat, covering claude.md, project overview, architecture, monorepo structure and key technologies.
ai AGENTS.md
AGENTS.md instructions for vercel/ai, covering agents.md, project overview, repository structure, key directories and core package dependencies.