Skip to main content
Glama

smallinvoice MCP by usefulapi

Create a contact

smallinvoice_create_contact

WRITE: creates a new company contact (customer) in smallinvoice, with its main address. Needs the "contact" scope. POST /contacts. Nothing is sent to anyone. Private persons are not supported here (smallinvoice needs more fields for them): create those in smallinvoice. Check smallinvoice_list_contacts first so you do not create a duplicate.

Input Schema

NameRequiredDescriptionDefault
cityYesMain address: city.
nameYesCompany name, as printed on documents.
emailNoE-mail address.
streetYesMain address: street and number.
countryYesMain address: ISO country code, e.g. CH.
currencyNoISO currency, e.g. CHF or EUR.
postcodeYesMain address: postcode.
relationNoRelation codes (default ['CL'] = client, as in the vendor's example). See the vendor docs for the others.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare write behavior, open-world access, non-idempotency, and non-destructiveness. The description adds concrete context beyond those hints: the POST /contacts endpoint, the 'contact' scope requirement, the fact that nothing is sent to anyone, and the unsupported private-person case.

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 WRITE intent and resource, then efficiently covers scope, endpoint, side effects, unsupported contact type, and duplicate prevention. Every sentence carries operational value and there is 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?

For a non-idempotent create tool with no output schema, the description covers scope, endpoint, side-effect behavior, duplicate prevention, and unsupported private persons. It does not describe what the API returns after creation, which is a minor remaining gap given the otherwise rich context and full schema annotations.

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 all 8 parameters, including formats, lengths, and patterns. The description adds only high-level context such as 'main address' and the company-contact focus, without clarifying optional fields like currency or relation. Baseline 3 is appropriate when the schema does the detailed work.

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: creates a new company contact/customer in smallinvoice with its main address. It also distinguishes this from private-person contacts, which are explicitly unsupported here, and references the relevant sibling list_contacts for duplicate checking.

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?

Gives explicit usage guidance: check smallinvoice_list_contacts first to avoid duplicates, and do not use this for private persons because smallinvoice needs more fields for them. It also names the required 'contact' scope, so prerequisites are clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.