MCP App Store
by KeenEthics

Overview

Definely's MCP server gives AI assistants live, deterministic access to contract structure. Resolve definitions, validate cross‑references, map dependencies, and run structural diffs to see how edits propagate across an agreement. Use it to catch broken links and inconsistencies, explain impacts clearly, and ground legal reasoning in contract topology, not just text.

Tools

definely_ingest_document

ChatGPT
Fallback for clients without a shell (e.g. ChatGPT) where the Step 2 curl upload in definely_upload_document cannot be run. Given a dragged-in file's download_url, this fetches the file and uploads it to Definely server-side, returning a fileId; then call definely_prepare_document with that fileId. Only use this when you cannot perform the Step 2 curl upload yourself — clients that can run curl must use the standard definely_upload_document flow instead. If this returns retryable: true, call it again (a fresh download_url will be provided) before giving up.

definely_open_upload_widget

ChatGPT
Open the Definely upload widget so the user can pick a local document to analyze. Use this in ChatGPT whenever the user wants to upload a local file — the curl-based definely_upload_document flow cannot run there. The widget registers the file with ChatGPT and calls definely_ingest_document, which returns a fileId; then call definely_prepare_document with that fileId to start processing.

definely_prepare_document

ChatGPT
Required workflow: Step 3 of 3 — call this immediately after the curl upload in Step 2. Do not call any other Definely tool until this completes successfully. Runs the full Definely preparation sequence: a. Submits the rules-based analysis job, then the proofreading job with the RB job's ID. b. Polls the rules-based job until it completes (progress == 100%%). c. Stores the document in the Definely document store (Elasticsearch) once the RB job is done. Workflow: 1. definely_upload_document — obtain fileId and pre-signed uploadUrl. 2. Bash curl upload — PUT the file to the uploadUrl. 3. definely_prepare_document (this tool) — call with the fileId from Step 1 and the original document_name (including extension, e.g. 'contract.docx') to prepare the document for all further Definely tools.

definely_upload_document

ChatGPT
Required workflow: Step 1 of 3 — call this first for every Definely or contract-related request. Do not call any other Definely tool before this. Obtains a pre-signed S3 uploadUrl and fileId for the document. Proceed to Step 2 then Step 3: Step 2 — Upload the file via Bash: curl -X PUT '<uploadUrl>' --data-binary '@/path/to/file' -H 'Content-Type: <content_type>' Content-Type by extension: .pdf -> application/pdf, .docx -> application/vnd.openxmlformats-officedocument.wordprocessingml.document, .doc -> application/msword, .xml -> application/xml. Step 3 — Call definely_prepare_document with the fileId. UX note: Do not surface the uploadUrl, curl command, or fileId to the user. Perform the upload silently and only confirm to the user once all three steps are complete.

fetch_text_by_item_name

ChatGPT
Use this tool to find a section, clause, defined term, or other document item by its name. The tool searches the document for tokens whose name matches the text you provide and returns the matching results. This is useful when a document contains cross-references and you want to quickly see the text of the referenced item. The tool returns a list of token objects (A token is a meaningful structural unit in a document, such as a Part, Section, Clause, Schedule, DefinedTerm, or other labelled item.), each containing: - name: the name of the matching item - text: the text content of the matching item - hash: the unique identifier of the matching item within the document - tokenType: the structural type of the matching item (e.g. Clause, DefinedTerm, Undefined, Section, Schedule) Input: - document_id (string, required): the unique identifier of the document - name (string, required): the name of the token to search for

find_cross_references_in_this_section

ChatGPT
Use this tool to find the sections, clauses, defined terms, and other document items that are referred to within a specific part of a document. The tool looks inside the specified section and returns the document items that are referenced within it. The tool returns a list of token objects (A token is a meaningful structural unit in a document, such as a Part, Section, Clause, Schedule, DefinedTerm, or other labelled item.), each containing: - name: the title, label, or term being referenced - text: the full text content of the referenced item - hash: the unique identifier of that referenced item within the document - tokenType: the structural type of the referenced item (e.g. Clause, Schedule, Listed, Inline, Undefined) This tool is useful for understanding cross-references, checking what a clause depends on, and exploring the context of a provision. Input: - document_id (string, required): the unique identifier of the document - token_hash (string, required): the unique hash identifier of the token whose internal references you want to retrieve

find_items_by_name_in_vault

ChatGPT
Use this tool to search the Vault for clauses, definitions, and other document items whose name matches your query. Best for: named clauses or terms (e.g. 'Leakage', 'Change of Control') where you know the exact or partial name. The Vault is the firm's repository of precedent clauses, definitions, and other reusable drafting materials. This tool performs a lexical search, which means it matches exact words or phrases in the item name. It can return results where the name fully matches or partially matches the search term you provide. You can refine the search using metadata filters such as contract type, governing law, parties, document name, token type, and other available filters. The tool returns search results with details such as: - id: the unique identifier of the Vault item - name: the name or heading of the matching item - text: the text content of the matching item - hash: the unique identifier of the matching token - tokenType: the structural type of the matching item (e.g. Clause, SubClause, DefinedTerm) - documentId: the unique identifier of the source document - documentName: the name of the source document - score: a relevance score based on the lexical match Use this tool when you want to retrieve a clause or defined term from the Vault and you already know its name, or at least part of its name. Do not use this tool when you do not need Vault content, when you do not know any exact part of the item name, or when you want to search by meaning rather than exact wording. Tips: - Always pass primaryDocumentUuid in filters when a document is uploaded — this surfaces contextually relevant results higher. - When the user names a specific precedent document, pass documentNames: ["<exact name>"] in filters to scope the search to that document only. - Vault search returns up to 5 results by default. If the first batch does not include the right result, use the offset filter to paginate. - The vault contains both Personal (individual lawyer) and Company (firm-wide) documents. Leave vaultTypes empty to search both. Only filter to one type if the user explicitly requests it. - If this lexical search returns no results or off-topic results, follow up with find_similar_items_in_vault using a description of what the clause does as the text parameter. - If the user mentions a specific document name that results do not surface, try find_document_in_vault_by_name with the document name to locate it directly, then filter subsequent searches by that documentName. Input: - name (string, required): the name or partial name to search for - filters (object, optional): metadata and pagination filters such as contract type, governing law, parties, document name, token type, limit, offset, primaryDocumentUuid, documentNames, and vaultTypes

find_precedent_in_vault

ChatGPT
Use this tool to find the most relevant similar document to a named document in the Vault and retrieve its reference report. The Vault is the law firm's repository of precedent contracts, clauses, defined terms, and other reusable drafting materials. A reference report is a structured outline of a document that shows its sections, clauses, and subclauses in a hierarchical view. This gives you a high-level skeleton of the precedent document, making it easier to compare structure, spot missing provisions, and understand how your current document differs from similar precedents. The tool returns: - vaultDocumentId: the unique identifier of the related Vault document - documentName: the name of the related Vault document - references: the reference report showing the structure of the related document Tip: Use this tool when the user mentions a specific document name that find_items_by_name_in_vault did not surface — locate it here directly by name, then filter subsequent vault searches by that documentName. Input: - document_name (string, required): the name of the document to find related Vault references for

find_similar_items_in_vault

ChatGPT
Use this tool to search the Vault for clauses, definitions, and other document items that are similar in meaning to your query. Best for: concepts or behaviours (e.g. 'how we cap liability on warranties') — pass a descriptive text to search by meaning. The Vault is the firm's repository of precedent clauses, definitions, and other reusable drafting materials. This tool performs a semantic search, which means it looks for content that is similar in meaning, context, or concept, not just exact wording. You can search using a name, a text snippet, or both. You can also refine the search using pagination and metadata filters such as contract type, governing law, parties, document name, token type, and other available filters. The tool returns search results with details such as: - id: the unique identifier of the Vault item - name: the name or heading of the matching item - text: the text content of the matching item - hash: the unique identifier of the matching token - tokenType: the structural type of the matching item (e.g. Clause, SubClause, DefinedTerm) - documentId: the unique identifier of the source document - documentName: the name of the source document - score: a relevance score showing how closely the result matches the query Use this tool when you want to find similar provisions based on meaning or wording, or when you are looking for a clause or defined term but do not know its exact name. Do not use this tool when you do not need Vault content, or when you already know the exact name of the clause or defined term and a lexical search would be more appropriate. Tips: - Always pass primaryDocumentUuid in filters when a document is uploaded — this surfaces contextually relevant results higher. - When the user names a specific precedent document, pass documentNames: ["<exact name>"] in filters to scope the search to that document only. - Vault search returns up to 5 results by default. If the first batch does not include the right result, use the offset filter to paginate. - The vault contains both Personal (individual lawyer) and Company (firm-wide) documents. Leave vaultTypes empty to search both. Only filter to one type if the user explicitly requests it. Input: - name (string, optional): the title, label, or term to search for - text (string, optional): the wording or passage to search by meaning - filters (object, optional): metadata and pagination filters such as contract type, governing law, parties, document name, token type, limit, offset, primaryDocumentUuid, documentNames, and vaultTypes

find_similar_precedent_in_vault

ChatGPT
Use this tool to find the most relevant similar document to current document in the Vault and retrieve its reference report. The Vault is the law firm's repository of precedent contracts, clauses, defined terms, and other reusable drafting materials. A reference report is a structured outline of a document that shows its sections, clauses, and subclauses in a hierarchical view. This gives you a high-level skeleton of the precedent document, making it easier to compare structure, spot missing provisions, and understand how your current document differs from similar precedents. The tool returns: - vaultDocumentId: the unique identifier of the related Vault document - documentName: the name of the related Vault document - references: the reference report showing the structure of the related document This tool is useful for precedent comparison, gap analysis, and identifying clauses or sections that may be missing from the document you are working on. Tip: Always pass the primaryDocumentUuid of the current document — this is used to find the most contextually relevant similar document in the vault. Input: - document_id (string, required): the unique identifier of the current document you are working on

find_undefined_terms_in_this_text

ChatGPT
Use this tool to check a piece of text against a contract and identify any undefined terms in that text. You can provide a clause, paragraph, or other body of text. An undefined term is a capitalised word or phrase used in the text that is not defined in the target contract. The tool returns a list of text values, each being one undefined term found in the supplied text. For example, if the text includes a capitalised term such as "Agreement" and that term is not defined in the contract, the tool may return "Agreement". This tool is useful for checking draft wording before inserting it into a contract, helping to avoid ambiguity and unintended undefined terms. Input: - document_id (string, required): the unique identifier of the target contract - text (string, required): the text to analyse for undefined terms

find_where_this_section_is_referenced

ChatGPT
Use this tool to find where a section, clause, or other document item is referred to elsewhere in the document. A token is a meaningful structural unit in a document, such as a Part, Section, Clause, Schedule, or DefinedTerm. The tool returns a list of token objects that reference the specified token. Each returned object includes: - name: the title or label of the referencing token - text: the full text content of the referencing token - hash: the unique identifier of the referencing token - tokenType: the structural type of the referencing token (e.g. Clause, Section, Part, Schedule) This tool is useful for finding cross-references, tracing where a clause or section is mentioned, and understanding how provisions connect across a document. Input: - document_id (string, required): the unique identifier of the document - token_hash (string, required): the unique hash identifier of the token whose references you want to retrieve

get_brand_design

ChatGPT
Returns Definely's design tokens (fonts, colours, spacing, table layout) for rendering Definely-specific outputs. Call this when producing a visual deliverable that should carry Definely's brand — for example, an Issues List report, a Proofread summary widget, or a clause-comparison table derived from Definely tools. Choose the context that matches what you are about to render: - 'General': the top-level Definely design system (fonts, colours, spacing, component patterns). Use this as the baseline for any output not covered by a more specific context. - 'Issues List': design tokens and layout rules specific to the Issues List report. - 'Proofread': design tokens and layout rules specific to the Proofread / Proof widgets. Not required for outputs unrelated to Definely's surface. Input: - context (string, required): one of 'General', 'Issues List', or 'Proofread'

get_containing_section

ChatGPT
Use this tool to retrieve the section or clause that contains a given token within a document. A token is a meaningful structural unit in a document, such as a Part, Section, Clause, Schedule, or DefinedTerm. The containing section is the immediate higher-level structure in which the token sits. Example: Clause 5 (Payments) 5.1 The Buyer shall pay the Purchase Price on Completion. 5.2 The Purchase Price shall be paid in cash. In this example: - Clause 5 is the containing section - Clause 5.1 and 5.2 are subclauses (child tokens) - The containing section of Clause 5.1 is Clause 5 The tool returns a single token object containing the parent section’s details, including: - name: the title or label of the section - text: the full text content of the section - hash: the unique hash identifier of the section - tokenType: the structural type (e.g. Part, Section, Clause, Schedule) This tool is useful for understanding document structure, locating provisions in context, and navigating where a clause sits within a document. Input: - document_id (string, required): the unique identifier of the document - token_hash (string, required): the unique hash identifier of the token

get_document_table_of_contents

ChatGPT
Use this tool to retrieve the table of contents of a document. The table of contents provides a hierarchical outline (tree structure) of the document, listing all sections, clauses, and subclauses. The tool returns a list of tokens. Each token represents a structurally meaningful unit (e.g. Section, Clause, DefinedTerm) and includes: - name: the title of the section or clause - hash ID: a unique identifier for the token - tokenType: the type of structure (e.g. Section, Clause, DefinedTerm) This is useful for analysing document structure and performing gap analysis (e.g. identifying missing clauses compared to another document or precedent). Input: - document_id (string, required): the unique identifier of the document

get_issues_list

ChatGPT
Use this tool to generate and retrieve the Issues List for a document that has already been prepared for analysis. The Issues List is a client-facing report that extracts tracked changes, mark-ups, and comments from a document and presents them as a formatted markdown report. This tool is useful for reviewing edits, sharing a clear change summary with clients, and supporting export workflows. This tool must only be used after definely_prepare_document has completed successfully. It requires a scan_job_id, which is the RB jobId returned in the rb_job field of definely_prepare_document. Output format: - Tracked insertions are wrapped in <ins>...</ins> HTML tags — render these as underlined or visually highlighted text, not as literal tags. - Tracked deletions are wrapped in ~~...~~ markdown strikethrough. - Both must be preserved and rendered when presenting the issues list to the user. Troubleshooting: - If the job fails, verify that scan_job_id comes from a successful definely_prepare_document call (check the rb_job.success field is true). - A failed job may indicate the RB analysis did not complete — check definely_prepare_document returned successfully for this document. Input: - scan_job_id (string, required): the RB jobId returned by definely_prepare_document

get_items_in_this_section

ChatGPT
Use this tool to retrieve the child items within a specific section, clause, schedule, or other document part. A token is a meaningful structural unit in a document, such as a Part, Section, Clause, Schedule, or DefinedTerm. A child token is a document item that sits directly within the specified token in the document hierarchy. For example, if a section contains clauses 1.1, 1.2, and 1.3, those clauses are the child tokens of that section. The tool returns a list of token objects, each containing: - name: the title or label of the child item - text: the full text content of the child item - hash: the unique identifier of the child item within the document - tokenType: the structural type of the child item (e.g. Clause, Section, Part, Schedule) This tool is useful for breaking down a larger document section into its immediate components and understanding how the document is structured. Input: - document_id (string, required): the unique identifier of the document - token_hash (string, required): the unique hash identifier of the token whose child items you want to retrieve

get_list_of_defined_terms

ChatGPT
Use this tool to retrieve defined terms in a contract, together with a unique hash for each occurrence. The tool returns a list of objects, each containing: - name: a defined term, being a capitalised word or phrase that is given a specific meaning in the contract, often in a definitions section or in quoted parenthetical drafting - hash: a unique identifier for that specific occurrence of the defined term within the document The same defined term may appear more than once in the output with different hashes, because each occurrence is listed separately. This tool is useful for reviewing contract terminology, checking consistency of definitions, and retrieving hashes for use in other tools. Input: - document_id (string, required): the unique identifier of the contract

get_list_of_undefined_terms

ChatGPT
Use this tool when you need a list of every undefined term in a contract. An undefined term is a capitalised word or phrase that appears to be a defined term but is not given a meaning in the definitions section or elsewhere in the document. Undefined capitalised terms may cause ambiguity and should be defined or written in lowercase. The tool returns a list of text values, each containing one undefined term- only the name of the term, without any additional context. This tool is useful for spotting ambiguity, inconsistent drafting, and missing definitions in contracts. Input: - document_id (string, required): the unique identifier of the document

get_proofread_issues_in_this_section

ChatGPT
Use this tool to retrieve all Proof issues identified within a specific section, clause, or other document item. A token is a meaningful structural unit in a document, such as a Part, Section, Clause, Schedule, or DefinedTerm. The tool returns Proof issues found within the specified token. Proof issues are drafting or proofreading issues identified by the Proof engine. Each issue includes details such as: - id: the unique identifier of the issue - type: the category of issue (e.g. MissingCrossReference, DuplicatedTerms, UsedBeforeDefined) - issueText: the text giving rise to the issue - context: a snippet showing where the issue appears - resolution: how the issue can be handled - paragraphHash: the unique identifier of the paragraph containing the issue Resolution values include: - Fixable: the issue can be fixed automatically - Reviewable: the issue can be reviewed in the Proof tab and fixed by the user - ManualEdits: the issue has been identified by the proofreading engine and must be fixed manually by the user in the document This tool is useful for reviewing drafting issues within a specific part of a document before finalising or revising it. Input: - document_id (string, required): the unique identifier of the document - token_hash (string, required): the unique hash identifier of the token to inspect for Proof issues

get_proofread_summary_for_document

ChatGPT
Use this tool to retrieve a summary of all Proof issues identified in a document. The summary is grouped by proofreading feature type and shows issue counts by resolution type. Proof issues are drafting or proofreading issues identified by the Proof engine. The tool returns a structured summary showing issue categories, issue types, descriptions, and counts. For each issue type, the summary may include: - issueDescription: a description of the issue type - count: the total number of issues of that type - countAutoResolvable: the number of Fixable issues - countResolvable: the number of Reviewable issues - countUnresolvable: the number of ManualEdits issues Resolution types include: - Fixable: issues that can be fixed automatically - Reviewable: issues that can be reviewed by the agent, but must be fixed by the user in the Proof tab - ManualEdits: issues identified by the proofreading engine that must be fixed manually by the user in the document The summary may cover categories such as editing mistakes, drafting notes, definition issues, cross-reference issues, and smart search results. This tool is useful for getting a high-level view of document quality and identifying which categories of issues need the most attention. Input: - document_id (string, required): the unique identifier of the document

get_text_of_this_item

ChatGPT
Use this tool to retrieve the text of a specific document item. A token is a meaningful structural unit in a document, such as a Part, Section, Clause, Schedule, or DefinedTerm. The tool returns the text content of the specified token. This is useful when you already know the hash of a document item and want to read its wording directly. Troubleshooting: - If you receive 'Document not found in database' error, verify that the document_id is correct. Check that the document was successfully prepared via definely_prepare_document before using this tool. - If you receive an error related to token_hash, the hash may be stale or incorrect. Re-fetch the hash from get_document_table_of_contents or fetch_text_by_item_name. Input: - document_id (string, required): the unique identifier of the document - token_hash (string, required): the unique hash identifier of the token whose text you want to retrieve

definely_prepare_document

Claude

definely_upload_document

Claude

fetch_text_by_item_name

Claude

find_cross_references_in_this_section

Claude

find_document_in_vault_by_name

Claude

find_items_by_name_in_vault

Claude

find_precedent_in_vault

Claude

find_similar_items_in_vault

Claude

find_similar_precedent_in_vault

Claude

find_undefined_terms_in_this_text

Claude

find_where_this_section_is_referenced

Claude

get_containing_section

Claude

get_document_table_of_contents

Claude

get_issues_list

Claude

get_items_in_this_section

Claude

get_list_of_defined_terms

Claude

get_list_of_undefined_terms

Claude

get_proof_issues_in_this_section

Claude

get_proof_summary_for_document

Claude

get_text_of_this_item

Claude

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

42

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily