ScopeLinq
Reads what was agreed and answers whether a new request is Included, citing only confirmed lines.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"scopelinq": {
"url": "https://mcp.scopelinq.com/mcp"
}
}
}Remote endpoints
https://mcp.scopelinq.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢draft_scope_record(agreement_text)
Reads a proposal, quote, estimate, contract, or email thread and returns the terms it actually states, each traced to the words it came from. Works for whoever sent the document or whoever received it. Pass the text exactly as written — do not summarise it first. Remove names, email addresses and account numbers before pasting. Returns two lists: `lines` (found in the text) and `not_found_in_text` (things the text does not clearly say). Show both to the person and ask which lines they agree were agreed, then call check_scope_change with only those. The text is processed by an AI model to produce the lines and is deleted within 24 hours. Free, no account.
Input Schema
{
"type": "object",
"properties": {
"agreement_text": {
"type": "string",
"minLength": 1,
"maxLength": 12000,
"description": "The proposal, quote, estimate, contract, or thread, pasted as written."
}
},
"required": [
"agreement_text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"format": {
"type": "string",
"const": "scopelinq-record"
},
"version": {
"type": "string",
"const": "1"
},
"status": {
"type": "string",
"const": "draft"
},
"parties": {
"type": "null"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"headline": {
"type": "string"
},
"source_span": {
"type": [
"string",
"null"
]
},
"anchor_score": {
"type": [
"number",
"null"
]
}
},
"required": [
"category",
"headline",
"source_span",
"anchor_score"
],
"additionalProperties": false
}
},
"not_found_in_text": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"headline": {
"type": "string"
},
"source_span": {
"type": [
"string",
"null"
]
},
"anchor_score": {
"type": [
"number",
"null"
]
}
},
"required": [
"category",
"headline",
"source_span",
"anchor_score"
],
"additionalProperties": false
}
},
"lines_hash": {
"type": "string"
},
"confidence": {
"type": [
"number",
"null"
]
},
"next_step": {
"type": "string"
},
"no_terms": {
"type": "boolean"
}
},
"required": [
"format",
"version",
"status",
"parties",
"lines",
"not_found_in_text",
"lines_hash",
"confidence",
"next_step"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_scope_change(request_text, confirmed_lines)
Answers whether a new request is Included, Additional work, or Needs clarification, citing one of the confirmed lines. Only pass lines the person has confirmed were agreed. Never pass lines from not_found_in_text unless the person confirmed them, and never pass the original document — there is no field for it. If no lines have been confirmed yet, call draft_scope_record first and ask the person. Works for whoever sent the document or whoever received it. Free, no account.
Input Schema
{
"type": "object",
"properties": {
"request_text": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "The new request, in the words it was made."
},
"confirmed_lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"headline": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"category": {
"type": "string",
"maxLength": 60
}
},
"required": [
"headline"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 40,
"description": "Lines the person confirmed were agreed — from draft_scope_record, or in their own words."
}
},
"required": [
"request_text",
"confirmed_lines"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"verdict": {
"type": "string",
"enum": [
"covered",
"new_request",
"needs_clarification"
]
},
"label": {
"type": "string",
"enum": [
"Included",
"Additional work",
"Needs clarification"
]
},
"confidence": {
"type": "integer"
},
"cited_line": {
"anyOf": [
{
"type": "object",
"properties": {
"index": {
"type": "integer"
},
"headline": {
"type": "string"
},
"quote": {
"type": "string"
}
},
"required": [
"index",
"headline",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"rationale": {
"type": [
"string",
"null"
]
},
"suggested_reply": {
"type": [
"string",
"null"
]
}
},
"required": [
"verdict",
"label",
"confidence",
"cited_line",
"rationale",
"suggested_reply"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence