asistonto-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@asistonto-mcpCreate a question pack from these meeting notes about the label rollout."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
asistonto-mcp
An MCP server that teaches any AI assistant to build question packs for asistonto, a live meeting copilot.
asistonto listens to a meeting and, the moment a question it was told to watch for is actually being discussed, it surfaces that question. What it watches is a pack. Writing a good one used to be expert work: the questions have to be stated in a particular four-part format, and each of those parts belongs in a different field because of what was measured about retrieval — get that wrong and the pack loads fine and then stays dark all meeting.
This server hands that expertise to Claude, ChatGPT, Claude Code, Codex, or anything else that speaks MCP. You paste your meeting notes; the assistant writes the pack; the pack loads into asistonto unchanged.
Install
Nothing to install. Every client below runs it through uvx, which fetches and
launches it on demand. You need uv and Python 3.12+.
uvx asistonto-mcp # runs the server on stdio; Ctrl-D to exitUntil the package is published to PyPI, point
uvxat the source instead —uvx --from git+https://github.com/<you>/asistonto-mcp asistonto-mcp, oruvx --from /path/to/asistonto-mcp asistonto-mcpfrom a local checkout — and use the same--fromform in the client configs below.
Claude Code
claude mcp add asistonto -- uvx asistonto-mcpOr, for everything on this machine rather than one project:
claude mcp add --scope user asistonto -- uvx asistonto-mcpClaude Desktop
claude_desktop_config.json — macOS:
~/Library/Application Support/Claude/claude_desktop_config.json, Windows:
%APPDATA%\Claude\claude_desktop_config.json.
{
"mcpServers": {
"asistonto": {
"command": "uvx",
"args": ["asistonto-mcp"]
}
}
}Restart Claude Desktop afterwards.
Codex, Cursor, Windsurf, and anything else taking the generic block
The same mcpServers object, in whichever file that client reads
(~/.codex/config.json, .cursor/mcp.json, …):
{
"mcpServers": {
"asistonto": {
"command": "uvx",
"args": ["asistonto-mcp"],
"env": {}
}
}
}Codex's TOML config takes the same three fields:
[mcp_servers.asistonto]
command = "uvx"
args = ["asistonto-mcp"]From a checkout
git clone https://github.com/<you>/asistonto-mcp.git
uvx --from ./asistonto-mcp asistonto-mcpRelated MCP server: Office-PowerPoint-MCP
What it gives the assistant
Tools
tool | what it does |
| the guidance below, for clients that cannot read resources |
| assembles one question from the four parts, each into the right field |
| reads an existing corpus document, in either format asistonto uses |
| lints phrasings: too few, keywords, document vocabulary, sibling collisions |
| everything that would fail to load, plus everything that would fail silently |
| writes |
| loads an existing pack the way the live server does, and validates it |
| writes the questions back out as markdown a person can correct |
| how many questions a pack needs before anything in it can fire |
Prompts — build_pack_for_meeting, write_paraphrases,
formulate_question, review_pack.
Resources — asistonto://guide/pack-format,
asistonto://guide/four-part-questions, asistonto://guide/paraphrases,
asistonto://guide/calibration, asistonto://guide/workflow,
asistonto://guide/labels, asistonto://example/pack,
asistonto://schema/brief.json.
The resources matter as much as the tools. An assistant that reads the paraphrase guidance before writing phrasings produces a materially better pack than one that only calls functions — the quality lives in judgement, and the judgement is written down there.
Worked example, end to end
1. Ask. In any client with the server registered:
Build me an asistonto pack for Tuesday's meeting with the warehouse lead about the new label. Here are my notes: (paste). The spec says the label carries the lot code, but the picking screen we saw last week only shows the pallet id, and nobody has said which one the scanner reads.
2. The assistant states each question in four parts and calls
compose_question:
part | content |
1 — where it came from |
|
2 — what was observed | the picking screen shown on 12 May displays only the pallet id |
3 — the question | when the operator scans at picking, does the code identify the pallet or the lot? |
4 — why it matters | the traceability chain hangs off which one is scanned |
which becomes one entry of brief.json:
{
"id": "QC-7",
"title": "what the scanner reads at picking",
"priority": "alta",
"source": "ETIQUETAS_v3.md",
"line": 41,
"probes": ["When the operator scans at picking, does the code identify the pallet or the lot?"],
"people": ["warehouse lead"],
"rationale": "the traceability chain hangs off which of the two is scanned",
"blocking": true,
"context": "ETIQUETAS_v3.md line 41 says the label carries the lot code. The picking screen shown on 12 May displays only the pallet id."
}The provenance sits in context, which is never indexed — indexing it costs
15 points of recall@1. The question sits in probes, the label in title, and
both of those are indexed.
3. Ten paraphrases per question, written from the question alone:
{
"QC-7": [
"when they scan at picking, what are they actually reading",
"the guy with the gun scans the pallet or the box",
"does the scan tell you which lot it is or just where it is",
"if two lots sit on the same pallet, how does the scan tell them apart",
"what comes up on the screen after the beep",
"can you tell from the scan which batch went out",
"is the code on the label the same one the system stores",
"do they scan once per pallet or once per unit",
"what happens when the label is torn and it does not scan",
"who decided which code goes on that label"
]
}4. validate_pack, then write_pack. You get a directory:
packs/almacen/
├── brief.json ← the only file the live loop reads
├── paraphrases.json ← the editable source, folded into the brief
└── background.txt ← a PAST meeting, for calibration5. Load it into asistonto. Copy that directory to packs/<name>/ on the
machine running the copilot, then pick it by name when you start the session at
https://asistonto.escorpia.com. Pack names must be letters, digits, dot, dash
or underscore, starting with a letter or digit — the server rejects anything else.
The three things worth knowing before you start
Provenance is never a paraphrase. Parts 1 and 2 describe documents; paraphrases describe speech. Measured with paraphrases already indexed, adding the provenance took recall@1 from 71.1% down to 55.6%. Worse, writing paraphrases while reading the provenance pulls document vocabulary — codes, annex numbers, file names — into phrasings that nobody ever says.
Paraphrases must separate siblings, not reword them. Six ways of saying the
same thing all resemble the neighbouring question equally, and 70% of measured
top-1 errors landed on a sibling of the same block. check_paraphrases flags
phrasings that fit the neighbour better than their own question.
A small pack cannot fire at all. The live gate is a z-score over the pack's
own scores, so its ceiling is (n-1)/√n. Against the default gate of 4.75 that
means at least 25 questions — below it the panel stays dark all meeting and
looks exactly like a quiet room.
The measurements behind all of this are in the guide resources, which the assistant can read directly.
Development
git clone https://github.com/<you>/asistonto-mcp.git
cd asistonto-mcp
uv venv && uv pip install -e '.[dev]'
uv run pytestThe test suite runs the MCP server over a real client session and asserts that
what it writes round-trips through a copy of the product's own loader
(tests/test_product_compatibility.py). No network access, no product code.
License
MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables AI assistants to extract and analyze text content from various document formats (PDF, DOCX, PPTX, XLSX) in local knowledge bases, and create new formatted Word and Excel documents with structured data and reports.5MIT
- Alicense-qualityCmaintenanceEnables AI assistants to programmatically create, manipulate, and analyze Microsoft PowerPoint presentations with advanced formatting and template management.4MIT
- Alicense-qualityDmaintenanceEnables AI assistants to create and manipulate PowerPoint presentations programmatically, including adding slides, exporting to PDF, and reading metadata.735MIT
- Alicense-qualityBmaintenanceEnables managing video conferencing platform tasks like creating rooms, managing recordings, and controlling live sessions through natural language with AI assistants.191MIT
Related MCP Connectors
Search recordings, summarize meetings, create clips, and automate workflows from your AI assistant.
Create AI surveys with dynamic follow-up probing directly from your AI assistant.
A personal RAG database you build from chat, so AI creates work that sounds like you.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/R0DR0X/asistonto-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server