PrelintDocs

MCP tools

The Prelint MCP server lets AI agents search product decisions, read the glossary, record new decisions, and curate the ledger.

Each tool below has a sample prompt to send your agent after you connect it to Prelint. The agent picks and calls the tools.

Keep human confirmation on for write tools. Take care when you use Prelint with other MCP servers, to avoid prompt injection.

Shared parameters

Every tool that works on a project takes project_id or project. Those that return lists also take page and page_size. The tables below leave these out.

ParameterTypeRequiredDefaultDescription
project_idintegerNo-The project to work on. Omit it when you can see only one project.
projectstringNo-The project slug or exact name, instead of project_id. A prefix matches nothing.
pageintegerNo1The page of results, starting at 1.
page_sizeintegerNo50Results per page, from 1 to 100. The default is 20 for search_statements and list_ingestions.

A failed call returns an error the agent can read, such as 404: Not found in this organization. The agent can then correct the call.

Look up decisions

Every connected user gets these, and none change anything.

search_statements

Search statements by meaning and return up to 50 ranked hits. Each hit says whether it has an open contradiction. The agent calls this before it proposes product behavior.

Access: Read

ParameterTypeRequiredDefaultDescription
qstringYes-The fact you want, as a short phrase. Write 'the interval between digest emails', not 'how often do we send digests?'.
min_similaritynumberNo0.25Drop hits below this similarity, from 0.0 to 1.0.
statusstringNo-pending, accepted, rejected, or superseded.
topic_idintegerNo-Only statements under this topic.
certaintystringNo-Only statements with this certainty.
ingestion_idintegerNo-Only statements from this ingestion.

Sample prompt: "What did we decide about the trial length?"

list_statements

List statements in a project, newest first. For questions about meaning, use search_statements.

Access: Read

ParameterTypeRequiredDefaultDescription
statusstringNo-pending, accepted, rejected, or superseded.
topic_idintegerNo-Only statements under this topic.
certaintystringNo-Only statements with this certainty.
ingestion_idintegerNo-Only statements from this ingestion.

Sample prompt: "List the pending statements in the billing project."

get_statement_provenance

Show where a statement came from and what replaced it. The agent calls this before it acts against a statement.

Access: Read

ParameterTypeRequiredDefaultDescription
statement_idintegerYes-The statement to trace.

Sample prompt: "Where did the statement about annual discounts come from?"

locate_statement

Find which project owns a statement id. It searches the whole organization, so it takes no project.

Access: Read

ParameterTypeRequiredDefaultDescription
statement_idintegerYes-A statement id from any project.

Sample prompt: "Which project is statement 4812 in?"

list_glossary_terms

List the product's vocabulary. The agent reads it before it names anything, so new code uses existing terms.

Access: Read

ParameterTypeRequiredDefaultDescription
qstringNo-A word or fragment to match in the name, aliases, or definition. Case does not matter.
categorystringNo-Only terms in this category.
statusstringNo-Only terms with this status.

Sample prompt: "Is 'workspace' or 'organization' the right term in our product?"

list_topics

List the topics that group a project's statements.

Access: Read

ParameterTypeRequiredDefaultDescription
statusstringNo-Only topics with this status.
topic_idintegerNo-Only this topic.

Sample prompt: "What topics does the billing project cover?"

list_contradictions

List pairs of statements that conflict. While a contradiction is open, neither statement is settled.

Access: Read

ParameterTypeRequiredDefaultDescription
resolvedbooleanNofalsePass true to list resolved items instead of open ones.
topic_idintegerNo-Only contradictions that touch this topic.
statement_idintegerNo-Only contradictions that involve this statement.

Sample prompt: "List the open contradictions in the billing topic."

list_topic_events

List topic changes that wait for a decision, such as merges and archives. Prelint applies most renames and description updates on its own.

Access: Read

ParameterTypeRequiredDefaultDescription
resolvedbooleanNofalsePass true to list resolved items instead of open ones.

Sample prompt: "Are any topic merges waiting for review?"

list_terminology_events

List proposed term renames, merges, deprecations, and definition changes that wait for a decision.

Access: Read

ParameterTypeRequiredDefaultDescription
resolvedbooleanNofalsePass true to list resolved items instead of open ones.

Sample prompt: "Which glossary changes are waiting for a decision?"

whoami

Return your organization, permissions, and every project you can read.

Access: Read

Sample prompt: "Which Prelint projects can you see?"

list_projects

List every project in your organization with its id, name, and slug.

Access: Read

Sample prompt: "List my Prelint projects."

Record decisions

Send new material to the ledger and track it.

ingest_text

Record a decision, its reasoning, a constraint, or a rejected option. Prelint saves the text when the call returns. It then splits the text into statements, files them under topics, and flags conflicts.

Access: Write, needs the Ingest permission

ParameterTypeRequiredDefaultDescription
raw_inputstringYes-The full thought, up to 500,000 characters. Extraction sees only this text, so include the reasons and context.
source_datedateNo-When the original content was created, for example the date of the call.
source_referencestringNo-A label for the source, for example 'Product call Mar 28'. Up to 500 characters.

Sample prompt: "Record in Prelint that we are dropping the annual plan discount, because few customers chose it."

list_ingestions

List a project's ingestions, newest first by the time Prelint recorded them.

Access: Read

ParameterTypeRequiredDefaultDescription
statusstringNo-Only ingestions with this status. 'active' matches every ingestion still in progress.
source_typestringNo-Only ingestions from this source.

Sample prompt: "Show what was recorded in Prelint this week."

get_ingestion

Report how far extraction got and how many statements it produced. Right after ingest_text, it usually shows work still in progress.

Access: Read

ParameterTypeRequiredDefaultDescription
ingestion_idintegerYes-The ingestion to check.

Sample prompt: "Did the notes I just recorded finish processing?"

delete_ingestion

Delete an ingestion. Statements that no other ingestion supports go back to pending. It fails while extraction still runs.

Access: Write, for the creator or the Manage brain permission

ParameterTypeRequiredDefaultDescription
ingestion_idintegerYes-The ingestion to delete.

Sample prompt: "Delete the notes I recorded by mistake."

Curate the ledger

Decide what counts. These tools need the Manage brain permission, which admins have. The server hides them from everyone else.

accept_statement

Accept a pending statement, so it becomes active product context.

Access: Write, needs Manage brain

ParameterTypeRequiredDefaultDescription
statement_idintegerYes-A pending statement.

Sample prompt: "Accept the pending statement about the 14-day trial."

reject_statement

Reject a statement, so it stops counting as product context.

Access: Write, needs Manage brain

ParameterTypeRequiredDefaultDescription
statement_idintegerYes-The statement to reject.

Sample prompt: "Reject the statement that says trials last 30 days."

confirm_statement

Confirm that an accepted statement past its expiry is still true.

Access: Write, needs Manage brain

ParameterTypeRequiredDefaultDescription
statement_idintegerYes-An expired accepted statement.

Sample prompt: "The expired statement about invoice due dates is still true. Confirm it."

resolve_contradiction

Settle a contradiction between two statements.

Access: Write, needs Manage brain

ParameterTypeRequiredDefaultDescription
relationship_idintegerYes-The contradiction id from list_contradictions.
resolutionstringYes-kept_existing, replaced, or coexist.
notestringNo-The reason, up to 2,000 characters. Required for coexist.

Sample prompt: "Settle the trial length contradiction in favor of the 14-day trial."

resolve_topic_event

Accept or dismiss a proposed topic change.

Access: Write, needs Manage brain

ParameterTypeRequiredDefaultDescription
event_idintegerYes-The event id from list_topic_events.
resolutionstringYes-accepted or dismissed.
notestringNo-The reason for the decision, up to 2,000 characters.

Sample prompt: "Accept the proposed merge of the Billing and Payments topics."

resolve_terminology_event

Accept or dismiss a proposed glossary change.

Access: Write, needs Manage brain

ParameterTypeRequiredDefaultDescription
event_idintegerYes-The event id from list_terminology_events.
resolutionstringYes-accepted or dismissed.
notestringNo-The reason for the decision, up to 2,000 characters.

Sample prompt: "Dismiss the proposed rename of 'workspace' to 'team'."

Not on the server yet

The server does not start pull request reviews or read their findings. Those arrive on the pull request, as described in how reviews work.