The MCP tools list: five memory, seven knowledge
Tool definitions
The twelve tools of the server "quelvio": five memory_* and seven knowledge_*. A person's own assistant is offered the seven knowledge_* tools only.
The twelve tools
Over MCP each tool returns a text block; the HTTP route at https://api.quelvio.com returns the JSON. The text holds only the sources' or the people's words, fixed lines and fields. Its first line inside the block says the words are records, not instructions.
| Tool | Returns | Runs |
|---|---|---|
memory_start | The session id, then the rules block and the chosen memories | 0 |
memory_recall | The memories for a question and a step | 0 |
memory_save_turn | For a request: its id and context. For a reply: ok | 0 |
memory_end | ok | 0 |
memory_trace | A memory's Memory trace: what happened to it, line by line, oldest first | 0 |
knowledge_scope | The repositories the key may read, and until when | 0 |
knowledge_ask | The answer: outcome, evidence, notes and the other lists | 1 |
knowledge_search | The passages that match, in search order, with no judging | 1 |
knowledge_open | One passage by id, or a section's passages, each with whether it is still live and what replaced it | 0 |
knowledge_changes | Every change since a time, with a served flag | 1 |
knowledge_propose | A proposed correction, which changes nothing until a person accepts it | 0 |
knowledge_trace | An answer's Answer trace, by its answer id: how the answer was made, line by line | 0 |
- Every tool takes
session_id, the Quelvio session id from the line "Quelvio session: {id}" or from memory_start. - Every answer also holds
consent: "none", "serve_only" or "full". - A run is one call to
knowledge_ask,knowledge_searchorknowledge_changes, answered. The other nine tools are free. - A person's own assistant signs in as that person, and is offered the seven
knowledge_*tools only.
memory_start
Opens a session and returns the person's rules, then the memories for the request. A hook agent doesn't call it: memories already arrive at each prompt.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
prompt | string | The request, word for word | Required |
project | string | The project id | The agent's default project |
parent | string | The parent session id | No parent |
session_id | string | On every call after the first | A new session |
Returns
session_id, issued by the server; prompt_id; text, the whole rules block, then the chosen memories; degraded, and reason if degraded.
Runs 0
memory_recall
Asks memory a short question before a step. Rules not yet delivered come first. A question repeated within 10 minutes gets the same answer.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
query | string | A short question | Required |
step | string | What the agent is about to do | Required |
session_id | string | The session id | Required |
Returns
text and degraded. With nothing to add: "Nothing new in memory for this."
Runs 0
memory_save_turn
For agents without hooks: passes each request and each final reply. Where hooks capture the session, it stores nothing.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
session_id | string | The session id | Required |
kind | string | prompt or reply | Required |
speaker | string | person or agent | Required |
text | string | The words, exactly as received or given | Required |
reply_to | string | For a reply: the id of the prompt it answers | Required for a reply |
Returns
For a prompt: the prompt's id, text and degraded. For a reply: ok.
Runs 0
memory_end
For agents without hooks: closes the session.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
session_id | string | The session id | Required |
Returns
ok
Runs 0
memory_trace
Returns a memory's Memory trace: what happened to it, line by line, oldest first, in fixed words, then the numbers under Details. It is built when it is opened, and asks no model anything. It answers only for a memory in the session's audience; any other reference, a deleted or erased memory's included, gets the not-found sentence. On a hooks connection it answers, as memory_recall does.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
session_id | string | The session id | Required |
memory | string | The reference at the end of a memory's label, such as #k3x9vq, or the memory's id | Required |
from | integer | The line to start at | 1 |
Returns
text: one <quelvio-trace> block, the lines, then their Details, at most 2,000 tokens, ending "More: lines {n} to {m}. Call memory_trace with from {n}." when there is more. Over MCP, beside it, the same answer as structured content: records_notice, id, consent, lines and more. With no trace to show: "Quelvio has no trace of {ref} for this session."
Runs 0
knowledge_scope
Lists the repositories the key may read, and until when.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
session_id | string | One id | The text block has no id |
Returns
id; acting_for, a person or no one; agent, the key's agent; repositories, each with its id, name, via (person or grant) and until.
Runs 0
knowledge_ask
Returns the answer to a question. The answer is evidence, in the sources' own words.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
question | string | 2,000 characters | 422 |
repositories | array of repository ids | 20 ids | Every repository the key may read |
as_of | date, YYYY-MM-DD | Not after today | The time is read from the question |
session_id | string | One id | The text block has no id |
Returns
id; outcome: answered, partly answered, possible or not found; evidence, the passages that answer, each with its words, highlighted sentences, document, section, dates, status, authority and link; notes; related, the passages that may answer, or the nearest ones; documents; changes; search: full, or keywords only.
Runs 1
knowledge_search
Returns the passages that match, in search order, with no judging.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
query | string | 2,000 characters | 422 |
repositories | array of repository ids | 20 ids | Every repository the key may read |
as_of | date | Not after today | Live passages, and passages not yet in effect |
limit | integer | 1 to 40 | 10 |
session_id | string | One id | The text block has no id |
Returns
id; search: full, or keywords only; passages, in search order.
Runs 1
knowledge_open
Opens one passage by id, or the passages of one section of a document. This is how an agent checks that something still stands before acting on it.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
passage | string, a passage id | One id | Give this, or document with section |
document | string, a document id | One id | As above |
section | array of strings, a heading path | 10 headings | The whole document |
limit | integer | 1 to 50 | 50 |
cursor | string | From the previous answer | The first page |
session_id | string | One id | The text block has no id |
Returns
id; passages, each with its place in the version, what replaced it and when, when it was removed, and since when a newer version has waited for approval; reading; cursor.
Runs 0
knowledge_changes
Lists every change since a time in the documents the key may read, newest first. served says whether this agent was served the old text. Nothing is pushed: each agent asks.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
since | date-time | Not in the future | 422 |
repositories | array of repository ids | 20 ids | Every repository the key may read |
limit | integer | 1 to 50 | 50 |
cursor | string | From the previous answer | The first page |
session_id | string | One id | The text block has no id |
Returns
id; changes, each with its time, document, kind (reworded, changed, added, removed, moved, or a document added, removed, withdrawn or expired), the old and new words, served and withheld; until; cursor.
Runs 1
knowledge_propose
Proposes a correction to the sentences of one passage. It becomes a "Proposed by an agent" item for the repository's approvers and owners, and changes nothing until a person accepts it. An agent may have 20 open proposals in one repository.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
passage | string, a passage id | One id | 422 |
text | string: the right words | 8,000 characters | 422 |
reason | string | 1,000 characters | 422 |
request_id | string | 64 characters | A new call |
session_id | string | One id | The text block has no id |
Returns
id; received: true; proposal, its id; status: waiting for a person; redacted: true when scrubbing removed something.
Runs 0
knowledge_trace
Returns an answer's Answer trace: how it was made, line by line, oldest first, in fixed words, then the numbers under Details. It is built when it is opened, and asks no model anything. An answer id that is unknown, erased, or not the caller's to see gets what an unknown one gets.
Arguments
| Argument | Type | Cap | If missing |
|---|---|---|---|
answer | string, the answer id: the JSON's id, and the answer attribute of the answer's block | One id | 422 |
from | integer, the line to start at | At least 1 | 1 |
session_id | string | One id | The text block has no id |
Returns
id; lines, each {n, at, kind, words, details}, oldest first; more, the next line's number, or null at the end. The text is one <quelvio-knowledge> block of at most 2,000 tokens, ending "More: lines {n} to {m}. Call knowledge_trace with from {n}." when there is more. With no trace to show: an empty lines, and "Quelvio has no trace of {answer id} for you."
Runs 0