Your agent's manual, served a section at a time.
jitprompt is an MCP server for agent instructions. Upload your docs as they are; your agent keeps a small map in view and loads only the sections that matter for the turn it's on.
## Support Handbook [doc 3f9a1c20]
How to answer refund, shipping and hours questions.
- [e812d01e] Refund Policy — 30-day window
- [7b40c9aa] Shipping Policy — rates, customs
- [c0d51f3e] Support Hours — weekdays, holidays
## Product Catalog [doc 91be07d4]
SKU reference and compatibility tables.
— 34 sections; get_toc(document_id="91be07d4")
lists them
The longer the system prompt, the less of it your agent follows.
Prompt caching made long system prompts cheap, not effective. A model asked to follow rule 47 of 80 follows it poorly, and the 79 rules that don't apply still pull on its behavior. jitprompt keeps a compact table of contents always visible and loads the sections that matter for the current turn, nothing else.
Three MCP tools. That's the whole surface your agent sees.
The map
One line per document: its title and a summary of what it covers. Small documents list their sections inline; large ones show a count and expand on request. The cost grows with documents, not sections.
Go straight there
When the agent knows where to look, it opens a section by its short id and reads the whole thing before acting.
Search by intent
The agent describes what it's about to do, not the user's words. jitprompt ranks sections and returns them whole, so rules arrive with their exceptions.
Guidance that follows the conversation, not the first message.
The conversation starts
The agent reads the map once. It costs a line per document, so it can keep it in view the whole time.
→ get_toc()
## Support Handbook [doc 3f9a1c20]
- [e812d01e] Refund Policy — 30-day window
- [7b40c9aa] Shipping Policy — rates, customs
A customer asks for a refund
The agent describes what it's about to do and gets the whole Refund Policy, digital-product exception included.
→ search_instructions(plan="replying to a
refund request for a 6-week-old order")
# Refund Policy [id: e812d01e]
Full refund within 30 days… store credit…
Then asks about shipping to Canada
New topic, new search. Every result ends with a reminder to search again before switching topics, so the agent doesn't keep acting on stale guidance.
→ search_instructions(plan="quoting shipping
time for an international order")
# Shipping Policy [id: 7b40c9aa]
International: 10–21 business days…
The same three tools serve skills.
A skill is a set of instructions for one kind of task, followed only when that task comes up. Upload one document per skill, or your SKILL.md files as they are: the description you wrote becomes its line in the map, and the agent loads the skill with get_section when a task matches.
Upload as-is. jitprompt does the structuring.
Upload
Markdown, plain text, PDF or Word, from the web app, the API or your CI. Headings, lists and tables carry over. Duplicate content is detected and never stored twice.
Structure
jitprompt splits the document into titled sections with short summaries, and writes the one-line summary your agent sees in the map.
Embed
Every section is indexed for meaning and for exact terms, so agents find rules by intent or by a specific code or name.
Serve
Status goes pending → parsing → structuring → embedding → ready, and the document appears in the map. No LLM in the retrieval path.
One URL, one key, one namespace.
jitprompt speaks MCP over streamable HTTP. Each API key is bound to exactly one namespace, so every agent gets least-privilege access to its own instructions. There are setup guides for Claude Code and Claude Desktop, the Anthropic, OpenAI and xAI (Grok) APIs, LangChain and LangGraph, and Qwen and other open-weight models; any MCP client works.
Your agent can read jitprompt's own docs the same way: add /mcp/docs with any of your keys, and it looks up how to use jitprompt instead of guessing.
$ claude mcp add --transport http \
jitprompt https://app.jitprompt.com/mcp \
--header "Authorization: Bearer imcp_…"
✓ get_toc ✓ get_section ✓ search_instructions
Everything around the retrieval, too.
Search that understands intent
Meaning and exact terms combined in one ranking, so a plan finds the right rule even when it uses different words.
Always-current map
The table of contents is built live on every call. Add, rename or remove a document and the next call sees it.
Edit, compare, roll back
Fix a rule in the browser and save; it's re-ingested and you see every section exactly as agents will. On paid plans each document keeps its history: see what changed, download an old version, or restore it.
Diagnostics
Calls and latency per tool, zero-hit rate, sections that are never retrieved, near-duplicates across documents, and the last searches with their plans.
Organizations and roles
Invite teammates as owner, admin or member. Namespaces isolate each agent's instructions.
Keys you control
Mint and revoke API keys per namespace. Keys are shown once, stored hashed and rate limited.
Search sandbox
Type the plan an agent would send and see the sections it gets and why. Compare phrasings side by side before your agents ask. On paid plans.
Publish from Git and CI
Keep instructions in your repo and upload them on every merge with the same key your agents use. Unchanged files cost nothing.
Your data, yours
Owners export an organization as a zip, with documents, their sections and kept versions. Delete it any time, with a week to change your mind.
Start free. Upgrade when your agents outgrow it.
- 1 namespace
- 3 documents per namespace
- 5 ingestions per day, per organization
- Documents up to 50,000 characters
- Current version only · no search sandbox
- 3 namespaces
- 10 documents per namespace
- 10 ingestions per day, per organization
- Document version history
- Search sandbox
- 10 namespaces
- Unlimited documents
- 100 ingestions per day, per organization
- Document version history
- Search sandbox
Questions teams ask first.
How is this different from RAG over my docs?
Three ways. Search is driven by what the agent is about to do, not by the user's message. Results are whole sections, never fragments. And the agent always sees a map of what exists, so it can go straight to a section instead of hoping a search finds it.
Do I have to restructure my docs?
No. Upload Markdown, plain text, PDF or Word files as they are. jitprompt splits them into sections, titles and summarizes each one, and you can review every section in the web app exactly as your agent will see it.
Is there an LLM call on every search?
No. A model is used once, at ingest, to structure and summarize your documents. Retrieval is a search over the index, so it stays fast and predictable.
Which agents can connect?
Any MCP client that supports streamable HTTP with a bearer key. The docs have setup guides for Claude Code, Claude Desktop, the Anthropic API's MCP connector, the OpenAI Responses API and Agents SDK, Grok (xAI), LangChain and LangGraph, and Qwen and other open-weight models. Connector UIs that require signing in, like Claude.ai, are on the roadmap.
Can I use it for agent skills?
Yes. Upload one document per skill, or your SKILL.md files as they are: the description in the front matter becomes the skill's line in the map, and the agent loads the whole skill only when a task matches. It works the same with any model that speaks MCP. jitprompt serves the skill's text; scripts bundled in a skill folder aren't run.
What happens when I change a document?
Edit it in the browser or replace it through the API, and it's re-ingested. The table of contents is built live on every call, so agents see the new version as soon as it's ready. On paid plans the previous versions are kept, so a bad edit is one restore away.
How is my data isolated?
Every API key is bound to one namespace and can read nothing else. Keys are stored hashed and rate limited, and another organization's pages simply don't exist for you.