Skip to main content
Glama

Server Details

Data processing agreement, $350 flat fee, reviewed and released by a lawyer.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 26 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation3/5

Most tools target distinct steps of the intake lifecycle, but two pairs overlap heavily: get_requirements('dpa') and get_dpa_requirements are functionally identical, as are submit_facts and submit_dpa_facts. The descriptions do hint at the generic-versus-specialized split, so an agent can recover, but the boundaries are not crisp and 4 of 11 tools sit in redundant pairs.

Naming Consistency5/5

Every tool follows a clean snake_case verb_noun pattern (get_*, submit_*, list_services, open_matter, request_consultation). No camelCase mixing or vague unqualified verbs; the action is always the first token.

Tool Count4/5

Eleven tools is a sensible scope for a fixed-scope legal intake flow covering listing, opening, requirements, submission, status, payment, terms and delivery. The only slight excess is the duplicated DPA-specific variants, which means two tools do not fully earn their place.

Completeness4/5

The lifecycle is largely covered end to end: discovery, matter creation, requirements, fact submission, status, terms, payment link, consultation fallback and deliverable retrieval. Minor gaps remain — no way to cancel or withdraw a matter, no separate signature/acceptance step, and the final executed PDF/Word is only reachable off-server.

Available Tools

11 tools
get_deliverableFetch the agreementA
Read-only
Inspect

Once a lawyer has released it: the agreement in Markdown with placeholders ([Client], [Customer] or [Vendor], and blank addresses and signatures), so you can explain it to the user. The final agreement with the parties' details, in PDF and Word, is only on the private page and in the e-mail to the person who signs.

NameRequiredDescriptionDefault
matterIdYesThe matter id returned by open_matter.
matterTokenYesThe matter token returned once by open_matter.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only safety profile, and the description adds genuinely new behavioral context: the result is only meaningful after a lawyer releases it, it contains placeholders rather than real party data, and the finished PDF/Word document is available only on the private page and signing e-mail. That tells the agent what it cannot retrieve here, which is valuable. It stops short of 5 because it doesn't say what happens if the agreement isn't yet released.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the availability precondition front-loaded before the content description and the PDF/Word contrast. Slightly unusual colon construction in the first sentence, but no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by characterizing the returned format (Markdown, placeholder tokens, blank addresses/signatures). Combined with readOnlyHint, an agent knows enough to call it and interpret the result; only the not-yet-released failure behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both matterId and matterToken are documented as coming from open_matter, so the schema carries the weight. The description adds no meaning about parameters beyond that, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description concretely states what comes back: the agreement in Markdown with placeholders and blank signatures, and contrasts it with the final PDF/Word version that lives elsewhere. The verb is only implicit (the title supplies 'Fetch'), and it does not explicitly distinguish itself from siblings like get_engagement_terms or get_requirements, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one real precondition — 'Once a lawyer has released it' — and a purpose ('so you can explain it to the user'), which implies when to call it. However, it never names an alternative or an exclusion against the other get_* tools, leaving routing largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dpa_requirementsFacts needed for a DPAA
Read-only
Inspect

The facts the data processing agreement needs, as a JSON Schema. Optionally narrowed to one governing law and the client's role. Do not send the facts until the engagement has begun.

NameRequiredDescriptionDefault
roleNoThe client's role.
governingLawNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true; the description adds a real workflow precondition about not submitting facts before the engagement begins, which is context the annotation cannot carry. It doesn't describe what the returned schema looks like or whether narrowing alters its shape, so it is useful but not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: identity of the resource first, optional narrowing second, the precondition last. No filler and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-optional-enum read tool with no output schema, the description covers purpose, narrowing behavior, and a key precondition, and it names the output format as a JSON Schema. Only the default (un-narrowed) result and the schema's shape remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 50% schema coverage, the description compensates by explaining the effect of both parameters – that governing law and role optionally narrow the result set – which the schema's enum lists alone do not convey. It still doesn't clarify the default behavior when both are omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('the facts the data processing agreement needs') and the return type ('as a JSON Schema'), which distinguishes it from the submit_* siblings that instead send those facts. An agent can tell it apart from get_requirements and submit_dpa_facts without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the optional narrowing by governing law and role, and adds an ordering constraint ('Do not send the facts until the engagement has begun') that implies a separate submission step. It stops short of naming submit_dpa_facts as the alternative, so the sibling routing is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_engagement_termsEngagement termsA
Read-only
Inspect

The full limited-scope engagement text for a service, with its version and SHA-256 hash, and whether it is open for acceptance.

NameRequiredDescriptionDefault
toolYesThe service: "dpa" (data processing agreement) or "baa" (business associate agreement).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description earns credit by disclosing what the payload contains (version, SHA-256 hash, acceptance flag). It stops short of covering failure modes, e.g. what happens when the terms are not open for acceptance or unavailable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the resource, enumerating the return contents without filler. Nothing can be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description is the only source of return info and it does describe the payload components adequately for a read-only getter. It is short of fully complete in omitting behavior when the document is missing or not yet available for acceptance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'tool' parameter is enum-documented as dpa/baa in the schema itself. The description's phrase 'for a service' loosely frames the parameter but adds no new semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource precisely (the full limited-scope engagement text for a service) and lists the exact payload components: version, SHA-256 hash, and acceptance status. However, it uses 'engagement terms' and 'service' while the parameter enum is dpa/baa and the sibling get_dpa_requirements covers adjacent ground, so the agent gets clear purpose but not a clean separation from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all, and no explicit mention of the closely related sibling get_dpa_requirements, which an agent could easily confuse with this tool. The only usage signal is implied by the getter framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_matter_statusMatter statusC
Read-only
Inspect

Where the matter stands, the next human step, the target in business hours, and any question from the lawyer.

NameRequiredDescriptionDefault
matterIdYesThe matter id returned by open_matter.
matterTokenYesThe matter token returned once by open_matter.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, so the description isn't carrying the safety burden. What it does add is the shape of the response — status narrative, next human step, business-hour target, lawyer question — which has value because no output schema exists, but it says nothing about freshness, polling behavior, or what happens with an invalid/expired token.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence-fragment with no filler, front-loading the most important element (where the matter stands). It is tight, though its telegraphic phrasing ("the target in business hours") costs clarity rather than words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description is the only source of return-value information, and it nominally covers the four things returned. But it is too terse to fully serve that role: "the target in business hours" is ambiguous (target date? SLA?), and nothing is said about error handling or whether the status changes over time.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented as coming from open_matter, so the schema does the work. The description adds no information about matterId or matterToken (e.g., token being single-use), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title say "matter status," but the description itself never states a verb or that it retrieves anything — it reads as a bare list of returned fields ("Where the matter stands, the next human step, the target..."). An agent can infer it reads a matter's status, but the purpose is only implied and no sibling is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to call this versus alternatives such as get_deliverable or get_requirements, nor any prerequisite (e.g., that a matter must first be opened). The mention of the lawyer's question hints at a polling/check-in use case but never states it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_requirementsFacts needed for a serviceA
Read-only
Inspect

The facts a service needs, as a JSON Schema: service "dpa" (data processing agreement) or "baa" (business associate agreement). For a DPA, optionally narrowed to one governing law and the client's role. Do not send the facts until the engagement has begun.

NameRequiredDescriptionDefault
roleNoThe client's role.
serviceYesThe service: "dpa" (data processing agreement) or "baa" (business associate agreement).
governingLawNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true is consistent with a read/fetch operation, so the safety profile is already covered by annotations. The description adds real value by disclosing the response shape (a JSON Schema) and a pre-condition tied to engagement start, but says nothing about whether the schema varies by governing law or how large/complex the output is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the resource and return format front-loaded, followed by the narrowing behavior and the prerequisite. Slightly awkward opening clause but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one required parameter, no nested objects, and no output schema, the description covers what an agent needs: what comes back (JSON Schema), the two service variants, optional narrowing, and the precondition on submitting. The main gap is the unaddressed relationship to get_dpa_requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the description compensates by explaining conditional applicability: role and governingLaw only matter for a DPA and "narrow" the result. That conditional scoping is not expressed in the schema, which just lists them as flat optional properties. It does not list the governingLaw enum values (CALIFORNIA/SPAIN), but the schema does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource precisely (the facts a service needs) and states the return format is a JSON Schema, plus enumerates the two service variants. It does not, however, differentiate itself from the very similar sibling get_dpa_requirements, leaving ambiguity about which to call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one useful workflow constraint ("Do not send the facts until the engagement has begun"), which implicitly points at submit_dpa_facts/submit_facts. But it never says when to use this general tool versus the DPA-specific sibling, and the sequencing rule is about a different tool rather than about selecting this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_servicesList the firm's services for agentsB
Read-only
Inspect

What North End Law offers through this server, at what fixed price, under which laws, and who is responsible. Responsible lawyer: Sergio Maldonado Elvira, Founder & Principal Attorney, North End Law Corporation, 447 Sutter St. Suite 506 - 1349, San Francisco, California 94108, United States.

NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered by structured data. The description adds no behavioral context beyond that — no auth requirements, pagination, or freshness guarantees. The second sentence is contact metadata about the responsible lawyer, not behavior of the tool, so it does not raise this score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is well front-loaded and compact. The second sentence is a full postal address for the responsible attorney, which is unlikely to help an agent select or invoke this tool and dilutes the description's signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only catalog tool with no output schema, the description should at least characterize the return shape (a list of services with price and jurisdiction fields). It gestures at this via 'at what fixed price, under which laws,' but never states the structure of the response, leaving a modest gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description's 'at what fixed price, under which laws' hints at what the returned entries contain, which is a modest bonus but not parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource clearly — the firm's service catalog with fixed prices and governing laws — and the title supplies the 'list' verb. It is distinguishable from sibling tools like get_engagement_terms or get_payment_link, which retrieve a single item rather than the whole offering. It lacks a crisp first-person verb (e.g., 'Lists all services...'), which keeps it out of 5 territory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus the sibling getters, nor any prerequisite or exclusion. An agent must infer that this is a first-stop catalog lookup. No guidance is provided about whether it should precede open_matter or request_consultation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_matterOpen a matterAInspect

Starts a request for a data processing agreement ($350) or, with tool "baa", a business associate agreement ($350). Send only the service, the governing law (CALIFORNIA by default, or SPAIN; CALIFORNIA only for a BAA), the client's role (PROCESSOR by default, or CONTROLLER; BUSINESS_ASSOCIATE for a BAA, with receivesPhi false) and, if useful, a short label that names no one. Do not ask the user for, and do not send, any name, e-mail address or postal address: the firm never needs them from you. Write "the Client" for the user's company and "the Customer" (or "the Vendor", when the client is the controller) for the other party. Returns a matter id, a matter token (shown once: keep it) and a private link. Give the private link to the user and ask them to open it in their browser within 24 hours. There the user enters their company's details, their own and the other party's, and the firm runs its conflicts check. You never see those details. The firm accepts the engagement when its automatic conflicts check is clear and payment is received (for a subscriber, when the engagement is accepted and the check is clear). If a possible conflict is found, nothing is charged, or the payment is refunded in full. A vendor whose services handle protected health information should use request_consultation.

NameRequiredDescriptionDefault
roleNoThe client's role under the agreement: PROCESSOR by default, or CONTROLLER. For a BAA: BUSINESS_ASSOCIATE (the default and the only role offered).
toolYesThe service: "dpa" (data processing agreement) or "baa" (business associate agreement).
labelNoOptional. A short label for the user to recognize the request, for example "customer DPA, October". It must name no one.
receivesPhiNoBAA only, and required for it: whether the client's services are designed to create, receive, maintain or transmit protected health information. Only false is accepted; for services that handle it, use request_consultation.
governingLawNoThe law of the DPA: CALIFORNIA by default, or SPAIN. The law of the BAA: CALIFORNIA only.CALIFORNIA

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: pricing, what happens after the call (user opens a private link within 24 hours), what the agent never sees, conflicts-check outcomes, and refund behavior. The one-time nature of the matter token is an important operational warning that the schema does not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and price, then requirements, then return/flow. Every sentence carries information, but the long parenthetical-heavy middle sentence and the engagement/refund explanation make it denser than necessary for a five-field tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description names the return values (matter id, one-time token, private link) and explains the downstream human workflow that determines whether the engagement is accepted. Nothing an agent needs to call this correctly or set user expectations is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning: the BAA forces CALIFORNIA-only law and BUSINESS_ASSOCIATE with receivesPhi false, and it restates the defaults in prose. Much of this duplicates the schema text, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ("Starts a request for a data processing agreement") and immediately names the variant switch (tool "baa") plus the price. It also distinguishes itself from the sibling request_consultation at the end, so an agent can route without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Spells out exactly which fields to send, explicit prohibitions ("Do not ask the user for, and do not send, any name, e-mail address or postal address"), naming conventions, and a clear alternative ("A vendor whose services handle protected health information should use request_consultation"). Both the when and the when-not are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_consultationAsk for a consultationAInspect

For anything outside the listed services: gives the booking link and lets the firm know a person would like to talk. Send a one-line topic only, no confidential facts.

NameRequiredDescriptionDefault
nameYes
emailYes
topicYesOne line, no confidential facts.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose the key behavioral fact that submitting triggers a notification to the firm and yields a booking link, plus a confidentiality caution, but says nothing about follow-up timing, whether a record is persisted, or what happens on invalid input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero waste, with the scope condition front-loaded before the behavioral outcome and the input caution. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-parameter write-side tool with no annotations and no output schema, the description covers the trigger condition, the outcome, and the confidentiality constraint. It leaves gaps around what the caller receives back and what the firm does with the request, which matters because no structured field supplies that context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only 'topic' is described), so some compensation is required. The description reinforces 'topic' as a one-line, non-confidential input and adds a meaningful constraint, but adds nothing about 'name' or 'email' beyond what their field names and formats imply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete action chain: it returns a booking link and notifies the firm that a person wants to talk. The scope clause 'for anything outside the listed services' implicitly separates it from list_services and the submit_*/open_matter siblings, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For anything outside the listed services' gives a clear triggering condition, and 'Send a one-line topic only, no confidential facts' sets a usage constraint on the input. It stops short of naming which sibling to use instead when the request falls inside the listed services.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_dpa_factsSend the DPA factsAInspect

The fact package for the agreement, in the "dealroom.solo-intake/1" shape described by get_dpa_requirements. Accepted only once the engagement has begun, and again when the lawyer asks for changes. Leave out counterpartyLegalName: the firm adds the other party from the private page. Do not ask the user for, and do not send, any name, e-mail address or postal address: the firm never needs them from you. Write "the Client" for the user's company and "the Customer" (or "the Vendor", when the client is the controller) for the other party. A fact package that contains a name, an e-mail address or a postal address the firm holds for the matter is refused.

NameRequiredDescriptionDefault
factsYesThe fact package; see get_dpa_requirements.
matterIdYesThe matter id returned by open_matter.
matterTokenYesThe matter token returned once by open_matter.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the precondition (engagement must have begun), the repeats-on-change pattern, and a hard rejection rule ('a fact package that contains a name, an e-mail address or a postal address ... is refused'). It stops short of describing what a successful submission returns or whether resubmission overwrites prior facts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the payload shape and timing, then the exclusions, which is the right order. The final sentence restates the refusal condition already implied by 'do not send ... any name, e-mail address or postal address', costing some redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation with a free-form nested object, no annotations, and no output schema, the description covers shape source, preconditions, forbidden content, and the expected failure mode. Only the success response and idempotency behavior remain unspecified, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for matterId/matterToken, but the facts object is untyped (additionalProperties: {}), so the schema cannot document it. The description compensates with real field-level rules: omit counterpartyLegalName, never send names/e-mails/postal addresses, and use "the Client"/"the Customer"/"the Vendor" conventions — meaning an agent could not derive from structured fields alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource precisely (the fact package for the DPA/agreement) and ties its shape to the "dealroom.solo-intake/1" schema from get_dpa_requirements, which separates it from the sibling get_dpa_requirements and from the generic submit_facts. However, the opening sentence describes the payload rather than stating the action, so the verb (submit/send) is only implied by the tool name and title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states exactly when the call is accepted — only after the engagement has begun, and again on lawyer request for changes — and routes the agent to get_dpa_requirements first to learn the payload shape. Both the timing condition and the prerequisite lookup are explicit, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_factsSend the factsAInspect

The fact package for the matter's service, in the "dealroom.solo-intake/1" shape described by get_requirements. Accepted only once the engagement has begun, and again when the lawyer asks for changes. Leave out counterpartyLegalName: the firm adds the other party from the private page. Do not ask the user for, and do not send, any name, e-mail address or postal address: the firm never needs them from you. Write "the Client" for the user's company and "the Customer" (or "the Vendor", when the client is the controller) for the other party. A fact package that contains a name, an e-mail address or a postal address the firm holds for the matter is refused. For a business associate agreement, the facts must not contain protected health information: they describe the services, not any individual.

NameRequiredDescriptionDefault
factsYesThe fact package; see get_requirements.
serviceYesThe service: "dpa" (data processing agreement) or "baa" (business associate agreement).
matterIdYesThe matter id returned by open_matter.
matterTokenYesThe matter token returned once by open_matter.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses acceptance preconditions, that a package containing a name/e-mail/postal address held for the matter is refused, that counterpartyLegalName must be omitted because the firm supplies it, and an extra BAA/PHI restriction. It stops short of describing what a successful submission returns or how refusals are surfaced, which matters since there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded as a single dense paragraph: identity and shape first, then acceptance rules, then content restrictions. The prohibition on names/e-mails/addresses is restated for both "do not send" and "will be refused," which is mild redundancy but each clause adds a distinct nuance (interaction vs. validation).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-required-parameter mutation with a nested open-ended object, no annotations and no output schema, the description covers preconditions, content rules, exclusions and refusal behavior. The remaining gap is the response/error contract, which nothing else in the structured data supplies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the enum and id/token parameters are already documented; the description's added value is on the free-form nested `facts` object, where it prescribes substitute wording ("the Client", "the Customer"/"the Vendor") and exclusions. That meaningfully constrains the one parameter the schema leaves as additionalProperties, exceeding the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ("the fact package for the matter's service") and its schema id, but never states a verb — the action is only carried by the name and title. It also does not distinguish itself from the sibling submit_dpa_facts, leaving the agent to infer which submission tool applies to a given service.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Timing/preconditions are explicit: "Accepted only once the engagement has begun, and again when the lawyer asks for changes," and it points to get_requirements for the shape. It gives clear when-to-call context, but names no alternative when this tool is not the right one (e.g. submit_dpa_facts or open_matter ordering).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updates
    • Changedget_deliverable1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_dpa_requirements1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_engagement_terms1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_matter_status1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_payment_link1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_requirements1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedopen_matter1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedrequest_consultation2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / email / pattern
        Added value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    • Changedsubmit_dpa_facts2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / facts / propertyNames
        Added value: +{
        +  "type": "string"
        +}
    • Changedsubmit_facts2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / facts / propertyNames
        Added value: +{
        +  "type": "string"
        +}
  2. 1 tool update
    • Changedopen_matter6 fields changed
      • removedInput schema / properties / adverseParties
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "const": "none",
        -      "type": "string"
        -    },
        -    {
        -      "items": {
        -        "$ref": "#/properties/namedPerson/properties/name"
        -      },
        -      "maxItems": 10,
        -      "minItems": 1,
        -      "type": "array"
        -    }
        -  ],
        -  "description": "Anyone whose interests are adverse to the client in this matter, or \"none\"."
        -}
      • removedInput schema / properties / client
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "entityType": {
        -      "description": "For example \"Delaware corporation\" or \"sociedad limitada\".",
        -      "maxLength": 100,
        -      "minLength": 2,
        -      "type": "string"
        -    },
        -    "legalName": {
        -      "description": "The client's full legal name, as registered.",
        -      "maxLength": 200,
        -      "minLength": 2,
        -      "type": "string"
        -    },
        -    "placeOfIncorporation": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "country": {
        -          "description": "ISO 3166-1 alpha-2 code, for example US, ES, GB.",
        -          "maxLength": 2,
        -          "minLength": 2,
        -          "type": "string"
        -        },
        -        "region": {
        -          "description": "State or region, for example Delaware.",
        -          "maxLength": 100,
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "country"
        -      ],
        -      "type": "object"
        -    },
        -    "registeredAddress": {
        -      "maxLength": 400,
        -      "minLength": 10,
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "legalName",
        -    "entityType",
        -    "placeOfIncorporation",
        -    "registeredAddress"
        -  ],
        -  "type": "object"
        -}
      • removedInput schema / properties / counterparties
        Removed value: -{
        -  "description": "The legal name of every counterparty to the agreement.",
        -  "items": {
        -    "$ref": "#/properties/namedPerson/properties/name"
        -  },
        -  "maxItems": 5,
        -  "minItems": 1,
        -  "type": "array"
        -}
      • addedInput schema / properties / label
        Added value: +{
        +  "description": "Optional. A short label for the user to recognize the request, for example \"customer DPA, October\". It must name no one.",
        +  "maxLength": 60,
        +  "type": "string"
        +}
      • removedInput schema / properties / namedPerson
        Removed value: -{
        -  "additionalProperties": false,
        -  "description": "The person who can bind the client. The engagement goes to this address.",
        -  "properties": {
        -    "name": {
        -      "maxLength": 200,
        -      "minLength": 2,
        -      "type": "string"
        -    },
        -    "title": {
        -      "maxLength": 120,
        -      "minLength": 2,
        -      "type": "string"
        -    },
        -    "workEmail": {
        -      "format": "email",
        -      "maxLength": 254,
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "name",
        -    "title",
        -    "workEmail"
        -  ],
        -  "type": "object"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "tool",
        -  "client",
        -  "namedPerson",
        -  "counterparties",
        -  "adverseParties"
        -]New value: +[
        +  "tool"
        +]
  3. 4 tool updates
    • Changedget_engagement_terms3 fields changed
      • removedInput schema / properties / tool / const
        Removed value: -"dpa"
      • addedInput schema / properties / tool / description
        Added value: +"The service: \"dpa\" (data processing agreement) or \"baa\" (business associate agreement)."
      • addedInput schema / properties / tool / enum
        Added value: +[
        +  "dpa",
        +  "baa"
        +]
    • Addedget_requirements
    • Changedopen_matter8 fields changed
      • changedInput schema / properties / governingLaw / description
        Previous value: -"The law of the DPA: CALIFORNIA by default, or SPAIN."New value: +"The law of the DPA: CALIFORNIA by default, or SPAIN. The law of the BAA: CALIFORNIA only."
      • addedInput schema / properties / receivesPhi
        Added value: +{
        +  "description": "BAA only, and required for it: whether the client's services are designed to create, receive, maintain or transmit protected health information. Only false is accepted; for services that handle it, use request_consultation.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / role / default
        Removed value: -"PROCESSOR"
      • changedInput schema / properties / role / description
        Previous value: -"The client's role under the agreement: PROCESSOR by default, or CONTROLLER."New value: +"The client's role under the agreement: PROCESSOR by default, or CONTROLLER. For a BAA: BUSINESS_ASSOCIATE (the default and the only role offered)."
      • changedInput schema / properties / role / enum
        Previous value: -[
        -  "PROCESSOR",
        -  "CONTROLLER"
        -]New value: +[
        +  "PROCESSOR",
        +  "CONTROLLER",
        +  "BUSINESS_ASSOCIATE"
        +]
      • removedInput schema / properties / tool / const
        Removed value: -"dpa"
      • changedInput schema / properties / tool / description
        Previous value: -"The service. Only \"dpa\" (data processing agreement) in this version."New value: +"The service: \"dpa\" (data processing agreement) or \"baa\" (business associate agreement)."
      • addedInput schema / properties / tool / enum
        Added value: +[
        +  "dpa",
        +  "baa"
        +]
    • Addedsubmit_facts
  4. 9 tool updates
    • First observedget_deliverable
    • First observedget_dpa_requirements
    • First observedget_engagement_terms
    • First observedget_matter_status
    • First observedget_payment_link
    • First observedlist_services
    • First observedopen_matter
    • First observedrequest_consultation
    • First observedsubmit_dpa_facts

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources