Skip to main content
Glama

Senta MCP by usefulapi

Server Details

Review Senta clients, contacts and jobs, and update client records or add notes.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4/5.0

Scored across 7 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions (client CRUD, search, saved view, jobs list, notes add). The only mild overlap is between senta_search_clients and senta_list_client_view, both of which return client lists, though their descriptions explain the difference between keyword search and a saved practice view.

Naming Consistency5/5

All tools use a consistent senta_ prefix followed by snake_case verb_noun naming: add_note, create_client, get_client, list_client_view, list_jobs, search_clients, update_client. The pattern is predictable throughout.

Tool Count5/5

Seven tools is a well-scoped set for a client/job/note practice-management surface. Each tool has a clear role, and there are no redundant or trivial entries.

Completeness3/5

Client operations are reasonably covered (create, get, search, list view, update) and notes/jobs have basic support. However, jobs are read-only via senta_list_jobs with no get/create/update, notes support only adding with no read/update/delete, and client deletion is explicitly absent, leaving notable lifecycle gaps.

Available Tools

7 tools
senta_add_noteAdd a note to a clientAInspect

WRITE: add a note to a client, optionally attached to one of its jobs. The text may contain simple HTML. Returns the note. POST /api/notes.

NameRequiredDescriptionDefault
dateNoWhen the note refers to, ISO 8601 (default: now).
textYesThe note text (simple HTML allowed).
job_idNoOptional job id (`jid`) to attach the note to.
client_idYesThe client id (`cid`) the note belongs to.
note_typeNoNote type, e.g. "Phone call" (default "Note").

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the write, non-idempotent, non-destructive, open-world profile. The description adds genuine context beyond that: the text accepts simple HTML, the call returns the created note, and it maps to POST /api/notes. It does not mention duplicate-creation risk or any rate limits, which keeps it short of a 5.

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?

Four short clauses, front-loaded with the WRITE marker and the core action. Every sentence carries information: scope, HTML support, return value, endpoint. No waste.

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, stating "Returns the note" is helpful, and all parameters are covered by the schema. What's missing is any hint about relationships to sibling tools (e.g., looking up a client_id first), which would round out the picture for an agent.

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%, so all five parameters are already documented, including the HTML allowance and the job attachment. The description only echoes that information and adds no format or default guidance 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.

Purpose5/5

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

States a specific verb and resource ("add a note to a client") plus the optional job attachment and the underlying endpoint. No sibling tool in the list creates notes, so the agent can immediately route here for note creation.

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?

The "WRITE:" prefix and the mention of optional job attachment imply when this tool applies, but there is no explicit when-to-use/when-not guidance and no alternatives are named. For a create-only tool with obvious scope, implied usage is adequate but thin.

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

senta_create_clientCreate a clientAInspect

WRITE: create a new client (company) in the practice. A name (title) is required; the other fields depend on the practice's own client form. Returns the new client with its id. Check senta_search_clients first so you do not create a duplicate. POST /api/clients.

NameRequiredDescriptionDefault
webNo
townNo
titleYesClient name (Senta's `title`).
twitterNo
address1No
address2No
contactsNoContacts: firstname, lastname, email, mobile, shareholding.
districtNo
postcodeNo
telephoneNo
clienttypeNoType, e.g. "Partnership".
vatserviceNoWhether the VAT service applies.
clientstateNoState, e.g. "Prospect" or "Client" (the practice's own states).
businessareaNoBusiness area, e.g. "Veterinary".
extra_fieldsNoOther fields configured by the practice (Settings > Forms > Edit Client), keyed by Senta's internal field name.
paymentmethodNoPayment method, e.g. "Monthly".

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the write/non-destructive profile is covered structurally. The description adds real value beyond them: the practice-configurable client form that determines which optional fields exist, and the return of the created record with its id.

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, front-loaded with the operation type and required field, followed by the form caveat, return value and duplicate check. Nothing redundant.

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 16-param write tool with no output schema, the description supplies the essentials: required field, the fact that remaining fields are practice-specific, the return shape, and the dedupe precondition. It omits failure behavior when unknown extra_fields are supplied, which would be the last gap.

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 50% across 16 params, and the description only addresses 'title' plus the general note that other fields depend on the practice's form — a useful optionality signal but not per-parameter meaning. The nested contacts object and the ~10 address/contact/type fields are documented (or not) in the schema, not the description.

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 an explicit verb and resource ('WRITE: create a new client (company) in the practice'), which cleanly separates it from the read/update siblings (senta_get_client, senta_search_clients, senta_update_client). The single required field is named immediately, so the agent knows the minimum viable call.

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?

Gives an explicit precondition — 'Check senta_search_clients first so you do not create a duplicate' — which names the alternative tool and the condition that selects it. It does not say when to prefer senta_update_client for an existing record, leaving that one inference to the agent.

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

senta_get_clientGet a clientA
Read-only
Inspect

Read one client: name, state, type, business area, contacts (name, email, mobile, shareholding), address and the other fields the practice configured. GET /api/clients/{id}.

NameRequiredDescriptionDefault
client_idYesThe client id (`_id`), e.g. c260af21ede8f, from senta_search_clients.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds value by enumerating the payload fields and noting 'the other fields the practice configured' (i.e., tenant-specific shape), but says nothing about not-found behavior or permissions.

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 front-loaded sentence covering verb, resource, return fields and endpoint, with no filler. Every clause carries information an agent can act on.

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, so listing the returned fields is the right compensation and it is done well. The only gap is the absence of any error/empty-result note, which is minor for a single-record read.

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 client_id already carries format, length limits and the example pointing to senta_search_clients. The description adds no additional meaning about the parameter, so 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?

States a specific verb and resource ('Read one client') and enumerates the fields returned, so the agent knows exactly what comes back. The 'one client' framing implicitly separates it from list-style siblings, though it never names senta_search_clients or senta_list_client_view explicitly.

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?

Use case is implied by the required client_id, but the description never states when to prefer this over senta_search_clients or how to obtain the id (that hint lives only in the schema). No exclusions or prerequisites are given in the description itself.

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

senta_list_client_viewList clients in a saved client listA
Read-only
Inspect

Read a saved client list of the practice (the same filter and columns as in the Senta app). The view id is the last part of the list's address: https://.senta.co/c/l/v08a361263f4a has the view id v08a361263f4a. Column names are the list's column titles (for example "Client name", "State"). GET /api/clients/{viewId}.

NameRequiredDescriptionDefault
limitNoMost records to return (default 100, max 1000). Senta has no paging, so this only cuts the reply.
view_idYesThe client list (view) id, e.g. v08a361263f4a.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context that the returned data mirrors the saved list's filter and columns, and that column names are the list's titles. It does not discuss authentication, rate limits, or response shape beyond column naming.

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?

The description is two sentences, front-loaded with the tool's purpose. It efficiently adds the view-id extraction pattern and column-name semantics without wasting words, and the endpoint notation is compact and relevant.

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 annotations covering safety and the schema fully documenting both parameters, the description supplies enough context to call the tool correctly. It explains the saved-list semantics and view-id derivation, though it could more explicitly describe the response envelope given there is no output schema.

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 description coverage is 100%, establishing a baseline of 3. The description adds meaningful guidance for view_id by showing how to derive it from the list URL, which is more actionable than the schema's brief example. The limit parameter is not discussed, but its schema already explains default and maximum values.

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 specific verb and resource: read a saved client list. It clarifies that this is a saved view with the same filter and columns as the Senta app, which helps distinguish it from a generic client search. However, it does not explicitly contrast itself with the sibling search_clients tool, so it falls short of the highest clarity level.

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?

Usage is implied: the tool is for reading a saved client list when you have a view id. The description explains how to extract the view id from a URL, which supports correct invocation. But it offers no explicit when-to-use versus alternatives like senta_search_clients, and no when-not guidance.

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

senta_list_jobsList jobsA
Read-only
Inspect

List jobs (id, client id cid, job template id wid, title and main date). Filter by client, job template or status (pending, ready, overdue, completed, cancelled). With no filter this is every job of the practice, so filter when you can. GET /api/jobs.

NameRequiredDescriptionDefault
limitNoMost records to return (default 100, max 1000). Senta has no paging, so this only cuts the reply.
statusNoOnly jobs with this status.
client_idNoOnly jobs of this client (`cid`).
template_idNoOnly jobs made from this job template (`wid`).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, non-destructive, open-world behavior, so the description needs only supplementary context. It adds meaningful disclosure about unbounded default scope ('every job of the practice') and the endpoint, which helps an agent anticipate result volume.

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?

Front-loads the return fields, then the filters, then the no-filter warning, and closes with the endpoint. No sentence is redundant with another.

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 read-only listing tool with a fully documented schema, the description covers return shape, filtering, and the unbounded-result caveat. Only minor gaps remain, such as how filters combine or whether results are ordered.

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%, so the schema already documents limit, status enum, client_id and template_id including the cid/wid aliases. The description repeats the filter categories without adding syntax, precedence, or combination semantics, so baseline 3 is appropriate.

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 and resource ('List jobs') and enumerates the returned fields (id, cid, wid, title, main date), which lets an agent match the tool to a data need without opening the schema. It is also clearly distinct from the client-focused siblings, none of which list jobs.

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?

Gives an explicit operational rule: with no filter it returns every job of the practice, so filter when possible. It does not name an alternative tool, but no sibling in the list competes for this use case, so the absence is minor.

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

senta_search_clientsSearch clientsA
Read-only
Inspect

Find the practice's clients by keywords. Returns matching clients with their id (_id) and name (title). Use the id with senta_get_client, senta_list_jobs or senta_add_note. GET /api/clients/search.

NameRequiredDescriptionDefault
limitNoMost records to return (default 100, max 1000). Senta has no paging, so this only cuts the reply.
keywordsYesWords to match client names against.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds value beyond them by disclosing the response payload ('matching clients with their id (`_id`) and name (`title`)') and the underlying endpoint, which matters since there is no output schema. It does not mention the no-paging/truncation behavior — that lives only in the schema.

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 with zero waste: purpose and return shape first, downstream id usage second, endpoint last. Every sentence earns its place and nothing is 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 low-complexity two-parameter read tool with no output schema, the description covers purpose, payload fields and follow-on tool routing adequately. The only gap is matching semantics for `keywords` (exact vs. partial), which an agent would benefit from knowing before calling.

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%, so both `keywords` and `limit` are already documented, including the no-paging caveat for `limit`. The description adds no semantics beyond the schema — it doesn't say whether keywords are AND/OR, substring or prefix matched, or whether case matters. Baseline 3 applies.

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 and resource ('Find the practice's clients by keywords') and immediately describes the return shape (`_id`, `title`). Against siblings like senta_create_client, senta_update_client and senta_get_client, an agent can tell this is the keyword-discovery entry point without opening any 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?

Explicitly routes the agent forward: 'Use the id with senta_get_client, senta_list_jobs or senta_add_note' — a clear follow-on contract naming three siblings. It stops short of saying when to prefer this over senta_list_client_view (browse vs. keyword lookup), so it's clear context but not a full when/when-not discrimination.

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

senta_update_clientUpdate a clientA
DestructiveIdempotent
Inspect

WRITE: partially update an existing client; only submitted properties are changed, per Senta's Client API. Read current contacts with senta_get_client before editing them and pass the contact details to update or add. Changing clientstate or enabling a service can start jobs in Senta. There is no delete tool. PUT /api/clients/{id}.

NameRequiredDescriptionDefault
webNo
townNo
titleNoClient name (Senta's `title`).
twitterNo
address1No
address2No
contactsNoContact details to update or add, following the practice's contact form. Read current contacts before editing.
districtNo
postcodeNo
client_idYesThe client id (`_id`) to update.
telephoneNo
clienttypeNoType, e.g. "Partnership".
vatserviceNoWhether the VAT service applies.
clientstateNoState, e.g. "Prospect" or "Client" (the practice's own states).
businessareaNoBusiness area, e.g. "Veterinary".
extra_fieldsNoOther fields configured by the practice (Settings > Forms > Edit Client), keyed by Senta's internal field name.
paymentmethodNoPayment method, e.g. "Monthly".

TDQS

A4.5/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing that only submitted properties change, that changing clientstate or enabling a service can trigger jobs in Senta, and that no delete capability exists. The annotations already flag destructiveHint and idempotentHint, so this adds genuine side-effect context; it stops short of saying what 'destructive' concretely means for existing values.

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?

Front-loaded with 'WRITE:' and then five tight clauses covering semantics, prerequisite, side effects, absent capability, and endpoint. Every sentence carries distinct information with no filler.

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?

For a 17-parameter mutation tool with no output schema, the description covers the decision-relevant facts: partial-update behavior, the prerequisite read, job side effects, and lack of delete. The remaining undocumented fields are conventional address/contact properties the schema constrains by type and length.

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 17 parameters and only 53% schema description coverage, the description compensates where it matters most: it explains the nested contacts array (read current contacts, then pass details to update or add) and the side effect of clientstate. The remaining address/phone fields are self-evident, but several others are left to the schema.

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 and resource ('partially update an existing client') and pins down the partial-update semantics, which distinguishes it cleanly from senta_create_client and senta_get_client. The 'WRITE:' prefix and endpoint make the operation unmistakable.

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?

Explicitly directs the agent to read current contacts with senta_get_client before editing, and notes there is no delete tool, which rules out a path an agent might otherwise look for. It does not explicitly contrast with senta_create_client (when to create vs update), so it falls short of full when/when-not coverage.

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. 7 tool updates
    • First observedsenta_add_note
    • First observedsenta_create_client
    • First observedsenta_get_client
    • First observedsenta_list_client_view
    • First observedsenta_list_jobs
    • First observedsenta_search_clients
    • First observedsenta_update_client

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables freelancers and small agencies to manage client operations through voice, with daily briefings, call preparation, invoice tracking, stale-client alerts, and persistent memory across sessions.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables an AI assistant to run SME back-office tasks: search clients, browse a product catalogue, create draft quotes with totals and VAT computed in code, approve quotes only after human sign-off, list overdue invoices, and draft payment reminders. Every write stays a draft—nothing is sent.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Helps small business owners classify business documents and messages, extract key information like dates and amounts, generate action checklists, check missing documents, and draft business messages for accountants, clients, and employees.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.