Skip to main content
Glama
nezaralzien

manager-full-mcp

by nezaralzien

manager-full-mcp

Full-surface MCP server for Manager.io, with a local control panel where you tick exactly what Claude may do — per business, per resource, per operation.

Why

The stock manager-mcp server exposes 24 hand-curated document types out of the ~310 your Manager instance actually has, and hides the rest behind a hard-coded denylist (tax codes, exchange rates, custom fields, projects, fixed assets, lock date, recurring documents …). Permissions are nine coarse CSV "scopes" set in environment variables.

This server:

  • Reads the API surface from your own instance. Manager serves an OpenAPI document at the API base URL; every path in it becomes a resource. Nothing is curated away, and a Manager upgrade that adds document types shows up after refresh_catalog.

  • Gates every call on a tick box, with three states. Read / create / update / delete, for each of the ~310 resources: blocked, ask first, or allowed. Edited in a local web panel and re-read on every tool call — no restart.

  • Marks the dangerous resources in red. 111 of the 310 change the structure of the books rather than record a transaction. They are labelled ⚠ HIGH RISK everywhere, and switching one to "allowed without asking" needs a second confirmation.

  • Serves any number of businesses. Each one has its own token, its own catalog and its own permission file.

The only permanent block is account security: access_tokens, user_permissions and customer_portal are read-only, because writing there changes who can reach your books.

Related MCP server: varco_mcp

Install

git clone https://github.com/nezaralzien/manager-full-mcp.git
cd manager-full-mcp
uv venv --python 3.12 ~/.manager-full-mcp/venv
uv pip install --python ~/.manager-full-mcp/venv/bin/python .

For Claude Desktop, build the extension bundle and double-click it:

python3 build_mcpb.py   # writes manager-full-mcp.mcpb, pointing at the venv above

For any other MCP host, add this to its config:

{
  "mcpServers": {
    "manager-full": {
      "command": "/Users/you/.manager-full-mcp/venv/bin/python",
      "args": ["-m", "manager_full_mcp.server"]
    }
  }
}

No API URL or token in the config: businesses are added in the control panel.

First run

  1. Ask Claude to open the permissions panel (tool open_permissions_panel), or run ~/.manager-full-mcp/venv/bin/manager-full-panel.

  2. Businesses tab → add a business: display name, API URL (usually ends with /api2), and an access token from Manager → Settings → Access Tokens. The panel tests the connection and loads the resource list. Repeat for as many businesses as you like.

  3. Permissions tab → set what Claude may do. Presets: Read only, Safe writes (day-to-day documents, no deletes), Ask first for everything, Everything (high-risk resources land on ask first), Clear all. Press Save.

Claude picks up the new settings on its very next call.

The three states

State

Meaning

Blocked

Claude cannot do it. The tool answers with which box to tick.

? Ask first

Claude stops before writing and a confirmation box appears on your screen with the business, the operation and a preview of the exact fields. Buttons: Deny, Allow once, Allow 15 min. No answer within two minutes counts as Deny, and if no dialog can be shown the operation is refused.

Allowed

Goes through without asking.

"Ask first" is enforced in the server, not suggested to the model: the write does not happen until the dialog comes back with a yes.

High-risk resources

Shown in red, tagged ⚠ HIGH RISK, with an explanation on the group:

Group

Why it is risky

Chart of accounts & account definitions

Decide how every past and future transaction is classified

Starting balances

Feed every period after them

Tax (tax codes, withholding)

Apply to documents that already exist, so filed totals can be restated

Currencies & exchange rates

Revalue every foreign-currency transaction

Custom fields, themes, email templates, lock date

Change behaviour business-wide; the lock date is what protects closed periods

Bank reconciliations

Audit evidence that an account was checked

Account security

Permanently read-only — access tokens, user permissions, customer portal

manager_catalog reports risk and risk_note for each resource, and every write to a high-risk resource comes back with a caution field so Claude tells you exactly what changed.

Tools

Tool

What it does

list_businesses

Businesses this connection can reach

open_permissions_panel

Opens the tick-box panel, returns its URL

manager_catalog

Browse/search every resource and what is allowed

manager_permissions

What is currently allowed, and where the rules come from

manager_list

Search/page any collection, feed or report

manager_get

One record by Key, in Manager's own shape

manager_create

Create a record

manager_update

Update a record (merge by default, replace optional)

manager_delete

Delete a record (returns a copy of what was deleted)

manager_api_get

Raw GET on any path (needs Raw read)

manager_api_request

Raw POST/PUT/DELETE (needs Raw write)

prepare_attachment

Rasterise a PDF to one PNG per page — Manager's Image field silently rejects PDFs

refresh_catalog

Re-read the instance's API description

Every tool takes an optional business; it can be omitted when only one business is configured.

Attachments

Manager's Image field accepts images and silently drops PDFs, and a multi-page document has to become one image per page. prepare_attachment does that conversion in-process (pypdfium2 + a small PNG writer — no poppler, no ImageMagick, no Pillow), so the rule cannot fail because a converter is missing from the machine. Converted pages land in ~/.manager-full-mcp/converted/.

Where things live

Path

Contents

~/.manager-full-mcp/businesses.json

Businesses and access tokens (mode 0600)

~/.manager-full-mcp/permissions/<id>.json

The tick boxes for one business

~/.manager-full-mcp/catalog/<id>.json

Cached resource catalog

Tokens never travel through the chat: they are typed into the local panel, which binds to 127.0.0.1 only and requires a per-session token on every request.

Environment variables (optional)

Variable

Effect

MANAGER_FULL_READ_ONLY

true disables every write, whatever is ticked

MANAGER_FULL_WRITE_<GROUP>

Default create/update for a group before the panel is used. For high-risk groups a tick means ask first, never silent access

MANAGER_FULL_DELETE_<GROUP>

Same, for delete

MANAGER_FULL_RAW_READ / MANAGER_FULL_RAW_WRITE

Defaults for the raw escape hatches

MANAGER_FULL_HOME

Config directory (default ~/.manager-full-mcp)

MANAGER_API_URL / MANAGER_API_KEY

Bootstrap a single business without the panel

Group ids: parties, sales, purchases, banking, inventory, payroll, assets, ledger, projects, tax, currencies, recurring, starting_balances, accounts, reports, customization, attachments.

Once you save in the panel, the panel file wins and these defaults are ignored.


بالعربي — باختصار

  • الـ MCP هاد بيفتح كل موارد Manager (~310 مورد) مو بس 24.

  • الصلاحيات بتتحكم فيها من لوحة تحكم محلية، ولكل مورد ولكل عملية (قراءة / إنشاء / تعديل / حذف) ثلاث حالات: ✕ ممنوع، ؟ اسأل أولاً، ✓ مسموح.

  • «اسأل أولاً» تنفيذ حقيقي: كلود بيوقف، وبتطلعلك نافذة تأكيد من النظام فيها الشركة والعملية وتفاصيل الحقول، وأزرار: رفض / سماح مرة / سماح ١٥ دقيقة. ما في جواب خلال دقيقتين = رفض.

  • الموارد الخطرة (١١١ مورد: شجرة الحسابات، رموز الضريبة، أسعار الصرف، الأرصدة الافتتاحية، تاريخ الإقفال، الإعدادات) بتطلع بلون أحمر مع تحذير، وتحويلها لـ «مسموح بدون سؤال» بيطلب تأكيد إضافي.

  • بتضيف أي عدد شركات من اللوحة نفسها: اسم + رابط الـ API + رمز الوصول.

  • التغيير بصير فوري — ما في داعي تسكّر كلود وتفتحه.

  • الشي الوحيد المقفول دايماً: رموز الوصول وصلاحيات المستخدمين وبوابة العملاء (قراءة فقط).

لفتح اللوحة: اطلب من كلود «افتح لوحة صلاحيات Manager» أو شغّل ~/.manager-full-mcp/venv/bin/manager-full-panel.

Development

pip install -e ".[dev]"
pytest -q            # 42 tests, no network: a stub Manager instance is served locally
python3 tools/make_icon.py   # regenerates the extension icon

tests/data/openapi.json is a real Manager 26.9.1 API description with the instance URL replaced by localhost. It contains no business data.

Relationship to manager-mcp

Independent implementation, written from scratch, inspired by flumpiey/manager-mcp — a read-first server with nine CSV write scopes over 24 curated document types. This project takes the opposite approach: expose the instance's whole API surface and put a three-state permission grid in front of it. No code is shared between the two.

License

MIT

Available Tools

13 tools
list_businessesList BusinessesA
Read-only

List the Manager businesses this connection can reach, with their ids. Every other tool takes an optional 'business' argument; it can be left out when only one business is configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already state readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context beyond annotations: the result is scoped to businesses 'this connection can reach' and includes IDs, plus it clarifies that the business argument belongs to other tools, not this one.

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 carry all necessary information with no filler. The core purpose is front-loaded, and the cross-tool note is placed second, making the description easy to scan and act on.

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 zero-parameter, read-only list tool with an output schema and clear annotations, the description covers what the tool returns, its scope, and its relationship to every other tool in the set. Nothing essential is missing for an agent to invoke it correctly.

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 has zero parameters, so there is nothing for the schema or description to document. The description's mention of the optional 'business' argument is clarifying for sibling tools but not a parameter of this tool, matching the 0-parameter baseline.

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?

The description uses a specific verb and resource: 'List the Manager businesses this connection can reach, with their ids.' It also distinguishes itself from the sibling tools by explaining how every other tool depends on an optional 'business' argument, so an agent can tell this tool enumerates business IDs rather than performing a manager operation.

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?

The description clearly implies this tool is used to discover reachable businesses and their IDs, and it explains the relationship to all other tools via the optional 'business' argument. It does not explicitly name an alternative tool or state a hard 'when not to use' rule, but the context is clear enough for selection.

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

manager_api_getManager Api GetA
Read-only

Escape hatch: GET any Manager API path directly (e.g. '/customers' or '/sales-invoice-form/{key}'). Only for paths the catalog does not model. Requires 'Raw read' in the control panel.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
paramsNo
businessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the description doesn't contradict them. It adds the requirement of 'Raw read' permission in the control panel, which is valuable prerequisite knowledge. It also implies direct access with no catalog validation, which is useful context.

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 concise, front-loaded with the core purpose and examples, and each sentence adds value: the purpose, the scope, and the permission requirement. No wasted words.

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?

Given the output schema exists, return values are covered. The description covers purpose, usage scope, and permissions, which is strong. However, with 0% schema coverage and no explanation of 'params' and 'business', an agent might not know how to construct those parameters correctly, leaving a minor 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?

The schema has 0% description coverage, so the description carries the burden. It explains the 'path' parameter with examples, but provides no explanation for 'params' or 'business' parameters. Since the schema only gives types without semantics, the description partially compensates but is incomplete.

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?

The description clearly states the tool performs a GET on any Manager API path, with examples, and explicitly scopes it to paths the catalog does not model. This distinguishes it from other manager tools like manager_get and manager_list.

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?

It says to use only for paths the catalog does not model, which provides a clear condition. However, it doesn't explicitly say when not to use it (e.g., when the catalog does model the path) or mention alternatives like manager_get or manager_catalog.

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

manager_api_requestManager Api RequestA

Escape hatch: send any method (POST/PUT/DELETE) to any Manager API path. Bypasses per-resource tick boxes, so it requires the separate 'Raw write' box in the control panel. Prefer manager_create / manager_update.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYes
methodYes
businessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare openWorldHint=true and readOnlyHint=false, so the description doesn't need to restate mutability; it adds the meaningful detail that this bypasses per-resource tick boxes and requires the separate 'Raw write' permission. It also lists allowed methods, clarifying the scope of the open-world behavior.

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 terse sentences, each earning its place: scope, permission caveat, and routing advice. The most decision-relevant detail ('escape hatch') is front-loaded.

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 an escape hatch with 2 required params and an output schema, the description covers what the tool is, when to avoid it, and what permission it needs. It's slightly thin on body/business parameter semantics, but those are optional and the schema carries type info.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden, but it only covers method and path indirectly ('any method… any Manager API path'). The optional body and business parameters are left entirely unspecified, which is a gap for an escape-hatch tool.

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?

The description opens with 'Escape hatch' and a concrete verb phrase: 'send any method (POST/PUT/DELETE) to any Manager API path.' It clearly scopes the tool as generic raw API access and distinguishes it from managed siblings by naming the preferred alternatives.

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?

It explicitly says to prefer manager_create / manager_update, and explains the special permission requirement (separate 'Raw write' box) that gates use. It doesn't enumerate every scenario, but gives enough directional guidance to route an agent toward the managed tools when possible.

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

manager_catalogManager CatalogA
Read-only

Browse the resource catalog of a business: every document, list, report and setting the Manager instance exposes, with the operations allowed by the current tick boxes. Start here when you do not know a resource name. Filter with 'search' (e.g. 'invoice', 'tax') or 'group'.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNo
limitNo
searchNo
businessNo
allowed_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/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 context about what the catalog exposes (documents, lists, reports, settings) and that it reflects operations allowed by current tick boxes, which is useful behavioral context beyond the annotations. It doesn't contradict annotations.

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 core purpose and scope, and includes a clear usage directive. Every sentence earns its place, and the filtering guidance is concise. No wasted words.

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?

The tool has an output schema, so return values are covered. The description explains the tool's role as a discovery mechanism and mentions filtering. However, it doesn't explain the 'allowed_only' parameter or the 'business' parameter, which could be important for correct invocation. Given the output schema exists and the description covers the main use case, this is slightly above average but not fully complete.

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 0%, so the description must compensate. The description mentions 'search' and 'group' as filters, which maps to the 'search' and 'group' parameters, but it doesn't explain 'limit', 'business', or 'allowed_only'. The description adds some meaning for two of five parameters but leaves the others undocumented. Baseline 3 is appropriate since the description partially compensates but doesn't fully cover all parameters.

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?

The description clearly states the tool's purpose: browsing the resource catalog of a business, listing documents, lists, reports, and settings, with operations allowed by current tick boxes. It also explicitly says to start here when you don't know a resource name, distinguishing it from other manager_* tools. The verb 'browse' and resource 'resource catalog' are specific and unambiguous.

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?

The description explicitly says 'Start here when you do not know a resource name' and mentions filtering with 'search' or 'group'. This gives clear guidance on when to use this tool versus alternatives like manager_list or manager_get. It also implies it's a discovery/exploration tool, which is distinct from the more specific manager_* operations.

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

manager_createManager CreateA

Create a record (invoice, payment, customer, journal entry, tax code, …). 'fields' is Manager-native JSON: copy the shape from manager_get on an existing record of the same resource. Returns the new Key. For resources the catalog marks risk='high', get an explicit yes from the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes
businessNo
resourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so no contradiction exists. The description adds meaningful behavioral context beyond annotations by warning that high-risk resources require explicit user consent and by stating that the operation returns the new record Key, which helps set expectations for the call result.

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 well-organized sentences: the core purpose and examples come first, followed by the technical shape guidance and the risk-safety instruction. Every sentence adds necessary information 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 create operation with an output schema available, the description covers the key operational details: what to create, how to structure fields, what to expect in response, and when to seek user approval. The only notable omission is the 'business' parameter, which would otherwise make the guidance fully complete.

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 0%, so the description must compensate. It does explain 'fields' in detail, including that it is Manager-native JSON and should mirror an existing record's shape from manager_get, and it implies 'resource' via the list of record types. However, the optional 'business' parameter is never described, leaving a gap in an otherwise useful parameter explanation.

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?

The description opens with a specific action ('Create a record') and enumerates concrete resource examples (invoice, payment, customer, journal entry, tax code), making the tool's purpose immediately clear. It naturally distinguishes itself from sibling tools like manager_get, manager_update, and manager_delete by focusing on creation and returning the new Key.

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?

The description provides practical usage context: it tells agents to copy the fields shape from manager_get and instructs that high-risk resources require explicit user confirmation first. It does not explicitly name when not to use this tool or direct agents to alternatives, but the create-versus-read/update/delete distinction is clear from context.

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

manager_deleteManager DeleteA
Destructive

Delete a record permanently. Manager has no undo, so confirm with the user first; the deleted document is returned in the response so it can be re-created if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
businessNo
resourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Beyond what annotations already declare (destructiveHint=true, readOnlyHint=false), the description adds critical behavioral disclosures: deletion is permanent with no undo, the user must be confirmed first, and the deleted document is returned in the response so it can be re-created. This directly complements and enriches the annotation safety profile.

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 sentences, zero filler. The destructive action is front-loaded, followed immediately by the most decision-critical caveat (no undo) and the recovery mechanism (returned document). Every clause earns its place.

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 an output schema present and annotations covering destructiveness, the description covers the key behavioral caveats an agent needs to act safely. The main gap is parameter semantics, but that is accounted for separately; the tool's critical safety and recovery context is present.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden of explaining parameters, but it does not clarify what 'resource', 'key', or 'business' mean or how they relate to the record being deleted. The term 'record' loosely maps to 'resource' but never explicitly, leaving the agent to guess parameter formats.

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?

The description states a specific verb and resource — 'Delete a record permanently' — which clearly distinguishes it from siblings like manager_get, manager_create, and manager_update. The permanence qualifier adds important scope that separates it from any soft-delete or move-to-trash behavior.

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?

The description gives clear operational context: because there is no undo, the agent must confirm with the user first. It does not explicitly name alternatives or exclusion conditions, but the confirm-first instruction effectively routes the agent's decision-making around this irreversible action.

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

manager_getManager GetA
Read-only

Fetch one record by its Key (GUID) in the exact shape Manager stores it. Always do this before an update, and use an existing record as the template for a create — Manager's field names are not guessable.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
businessNo
resourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 and destructiveHint=false, so the agent knows this is a safe read. The description adds that it returns the exact shape and mentions non-guessable field names, which gives insight into the data model. However, it does not disclose details like error cases, pagination, or authentication, but given the annotations, a 3 is appropriate.

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 with no filler. It front-loads the core purpose and then provides usage guidance, all in a compact and efficient manner. Every clause adds value.

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

Completeness2/5

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

With 3 parameters, no schema descriptions, and only an output schema, the description fails to explain the 'resource' and 'business' parameters, which are crucial for correct invocation. The agent cannot determine what valid resource values are or how to construct the request without additional information, making the description incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain all parameters. It only explains 'key' (by its Key GUID), leaving 'resource' and 'business' undocumented. Since the schema provides no descriptions, the agent has to guess what 'resource' refers to, which is a significant gap.

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?

The description clearly states the verb 'Fetch' and the resource 'one record by its Key (GUID)' and specifies the output shape ('exact shape Manager stores it'). It also differentiates from siblings by indicating its role before updates and as a template for create, making it distinct from tools like manager_list or manager_create.

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?

The description explicitly provides when to use this tool: 'Always do this before an update' and 'use an existing record as the template for a create'. It does not explicitly mention when NOT to use it or alternative tools, but the guidance is strong enough for an agent to understand the primary use case.

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

manager_listManager ListA
Read-only

Search or page any Manager collection, report feed or list (customers, sales_invoices, payments, tax_codes, general ledger feeds, …). 'term' searches, 'sort_by' takes a column name, and date feeds accept from_date / to_date (YYYY-MM-DD). Unsupported parameters are reported back rather than silently dropped.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNo
termNo
fieldsNo
sort_byNo
to_dateNo
businessNo
resourceYes
from_dateNo
page_sizeNo
extra_paramsNo
sort_by_descNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds valuable behavioral disclosure beyond annotations: 'Unsupported parameters are reported back rather than silently dropped.' This proactive error-behavior note helps agents anticipate failures, crediting transparency.

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 sentences, no padding. The purpose is front-loaded, examples are compact, and the error behavior is a final line. Every sentence earns its place, making it highly scannable for an agent.

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?

The description covers the core search/page behavior and date-filter semantics, and the output schema exists to explain return values. Yet with 11 parameters and zero schema coverage, several parameters remain opaque, and the required 'resource' parameter is not described beyond examples. The agent can likely call it, but edge parameters like extra_params and pagination are left vague.

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?

With 0% schema description coverage, the description carries the semantic burden. It explains 'term' searches, 'sort_by' taking a column name, and date feeds accepting from_date/to_date with format YYYY-MM-DD. However, it leaves many parameters unexplained (skip, page_size, fields, business, extra_params, sort_by_desc), so compensation is only partial.

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 tool's verb and resource clearly: 'Search or page any Manager collection, report feed or list' with concrete examples (customers, sales_invoices, payments). This is specific and distinguishes the tool's broad enumeration/search role from siblings like manager_get and manager_catalog, though it doesn't explicitly name them.

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?

The description gives context ('Search or page any Manager collection') and hints at parameter usage, but it does not explicitly say when to use this tool over alternatives like manager_get or list_businesses, nor does it mention exclusions or fallback tools. An agent must infer usage from the broad wording.

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

manager_permissionsManager PermissionsA
Read-only

Show what this connection is currently allowed to do for a business: the totals per operation, where the rules come from, and the full list of resources with write access. Use it before telling the user something is not possible.

ParametersJSON Schema
NameRequiredDescriptionDefault
businessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral detail beyond those flags by specifying exactly what the read-only result contains and that it reflects the connection's current authorization state.

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 sentences, no filler. The core purpose is front-loaded, the output details are compactly listed, and the usage hint earns its place. Every sentence adds information.

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?

Given an output schema, one optional parameter, and annotations covering safety, the description is complete enough for an agent to select and invoke the tool correctly. It states what the tool returns, the context in which it should be used, and the business scoping.

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 0%, so the description must compensate. It only hints that the business parameter scopes results ('for a business') but does not explain the business identifier format, the meaning of null, or the default behavior. For a single optional parameter this is acceptable but not fully compensating.

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?

The description uses a specific verb ('Show') and names the resource (permissions of the current connection for a business), then enumerates the concrete outputs: totals per operation, rule origins, and resources with write access. This clearly differentiates it from sibling tools like manager_list or open_permissions_panel.

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?

It gives an explicit usage directive: 'Use it before telling the user something is not possible.' This is a clear, actionable trigger for when to call the tool. It does not, however, name alternatives or state when not to use it.

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

manager_updateManager UpdateA

Update a record. For resources the catalog marks risk='high' (accounts, tax codes, rates, opening balances, settings) confirm with the user first — those changes restate existing books. Default mode 'merge' reads the live document first and changes only the fields you pass, which is what you normally want because Manager's PUT replaces the whole document. Use mode='replace' to send the body verbatim.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
modeNomerge
fieldsYes
businessNo
resourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true. The description adds important behavioral context: merge mode reads the live document first and changes only passed fields, while replace sends the body verbatim. It also warns that high-risk resources restate existing books. This goes beyond annotations, though it doesn't detail error handling or auth requirements.

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 three sentences, front-loaded with the core action, then the warning, then the mode explanation. Every sentence adds value and there is no fluff.

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?

Given the tool has an output schema and annotations, the description covers the critical decision of merge vs replace and the high-risk confirmation requirement. It doesn't explain what 'key' refers to or how 'business' scoping works, but the output schema and sibling context likely cover some of that. For a mutation tool with openWorldHint, this is reasonably complete.

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 0%, so the description must compensate. It explains the 'mode' parameter's two values and their semantics, and mentions 'fields' as the fields to pass. It doesn't explain 'key', 'resource', or 'business' in detail, but the description's focus on mode and fields covers the most ambiguous parts. The resource parameter is partially explained by the high-risk list.

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?

The description clearly states the tool updates a record in Manager, and distinguishes it from siblings by explaining the merge vs replace behavior. It names the resource and the action with a specific verb, and the context about high-risk resources helps differentiate it from manager_create and manager_delete.

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?

The description explicitly says when to use default merge mode and when to use replace mode, and instructs the agent to confirm with the user for high-risk resources. It also explains why merge is normally preferred because PUT replaces the whole document. This is strong usage guidance.

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

open_permissions_panelOpen Permissions PanelA
Read-only

Open the local permissions control panel in the browser and return its URL. That panel is where the user ticks which resources this connection may read, create, update or delete, and where businesses and their access tokens are added. Changes apply immediately, no restart.

ParametersJSON Schema
NameRequiredDescriptionDefault
open_browserNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so the description does not need to restate safety. It adds useful behavioral detail beyond them: the panel is local, opens in the browser, returns a URL, and 'changes apply immediately, no restart.' This gives the agent practical expectations about side effects and deployment.

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 tight sentences: the first covers action and return value, the second explains user purpose and runtime behavior. No filler, no repetition of schema or annotations, and the most decision-relevant information is front-loaded.

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?

Given the tool is simple, has rich annotations, and includes an output schema, the description covers the core action and return. However, it leaves a material gap: the open_browser parameter is entirely undocumented, and the description does not clarify how to choose this tool over the sibling manager_permissions. It is minimally viable but not fully complete.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not mention the open_browser parameter at all. The agent cannot tell what happens when open_browser=false or how the boolean alters the tool's behavior. The name alone is not enough, especially since the tool is called 'open_permissions_panel' yet may optionally not open a browser.

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?

The description states a specific verb and resource: 'Open the local permissions control panel in the browser and return its URL.' It clearly distinguishes this from the sibling manager_* tools by emphasizing a local browser panel rather than an API-driven management action.

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?

It gives strong contextual cues about when to use the tool: when the user needs to tick resource permissions, add businesses, or manage access tokens. It does not explicitly name alternatives or provide exclusion criteria, but the 'local ... in the browser' framing implies a different use case than the manager_permissions or manager_list siblings.

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

prepare_attachmentPrepare AttachmentA
Read-only

Turn a file into something Manager will accept as evidence. Manager's Image field silently rejects PDFs, so ALWAYS run this on any PDF before attaching it: it rasterises every page and returns the image paths. Images pass through untouched. combine='vertical' (or 'horizontal') joins the pages of ONE document — a statement, a contract — into a single image, which is the right shape when the pages are one document. Leave combine='none' when the PDF holds several different documents, and never merge two different proofs into one image: each proof is its own attachment.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNo
combineNonone
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark this read-only/non-destructive, and the description adds the key behavior: PDFs are rasterised per page and image paths are returned, while images are passed through unchanged. It does not mention side effects like temporary file creation, but the annotation safety profile lowers that burden.

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 core command and the critical ALWAYS warning are front-loaded, and the combine guidance is compressed into conditional sentences. The phrase 'which is the right shape when the pages are one document' slightly restates the earlier 'joins the pages of ONE document', but the overall length is appropriate and every sentence earns its place.

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 an output schema present, the description doesn't need to document return values in depth, and it covers the main decision an agent faces (PDF vs image, one document vs several). Minor omissions like dpi semantics and temporary-file behavior do not prevent correct selection or invocation.

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?

The schema has 0% description coverage, so the description must carry parameter meaning. It explains combine's allowed values and the one-document vs multi-document decision rule, but dpi is left entirely to inference and file_path is only implied as 'file'. This is a real but not fatal gap.

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?

The description opens with a concrete transformation ('Turn a file into something Manager will accept as evidence') and names the exact failure it prevents (Image field rejects PDFs). It clearly identifies this as a pre-attachment rasterisation step, which separates it from the sibling manager_* CRUD tools.

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 gives an explicit ALWAYS rule for PDFs before attaching, says images pass through untouched, and provides conditional guidance for combine='vertical'/'horizontal' vs 'none' based on whether pages form one document. It also adds an exclusion: never merge two different proofs. This is explicit when/when-not guidance.

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

refresh_catalogRefresh CatalogA
Read-only

Re-read the Manager instance's own API description and rebuild the resource catalog. Run this after upgrading Manager or when a resource seems missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
businessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the readOnlyHint/openWorldHint/destructiveHint annotations, the description reveals that the tool re-reads the Manager's API description and rebuilds the catalog from it, and explains when that is needed. No statement contradicts the annotations; rebuild appears to refer to refreshing local catalog state, not an external destructive write.

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 tight sentences front-load the action and then give the concrete maintenance use cases. There is no repetition of the tool name or filler.

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?

The output schema and annotations cover return shape and safety, and the description covers triggers. However, the undocumented business parameter is a real gap for correct invocation when non-default behavior is intended, and no relationship to catalog inspection tools is explained.

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

Parameters1/5

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

The only parameter, business, has no schema description and is not mentioned anywhere in the tool description, leaving its meaning and effect entirely unexplained. With schema description coverage at 0%, the description needed to compensate but did not.

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?

Description names a specific action ('re-read the Manager instance's own API description and rebuild the resource catalog') and a unique resource, the resource catalog. This is clearly distinct from sibling tools like manager_catalog or manager_list, which inspect rather than rebuild the catalog.

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?

It gives explicit trigger conditions: after upgrading Manager or when a resource seems missing. It does not name exclusions or the alternative manager_catalog for checking whether a resource is present, so it stops short of a full when-not-to-use statement.

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. 13 tool updatesv1.0.0
    • First observedlist_businesses
    • First observedmanager_api_get
    • First observedmanager_api_request
    • First observedmanager_catalog
    • First observedmanager_create
    • First observedmanager_delete
    • First observedmanager_get
    • First observedmanager_list
    • First observedmanager_permissions
    • First observedmanager_update
    • First observedopen_permissions_panel
    • First observedprepare_attachment
    • First observedrefresh_catalog

TDQS

A4.2/5.0

Scored across 13 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: business listing, permissions, catalog management, file preparation, and per-resource CRUD operations are all uniquely scoped. Even the escape hatches (manager_api_get/api_request) are clearly differentiated from the typed CRUD tools by their raw, unvalidated nature.

Naming Consistency4/5

Most tools follow a readable pattern: CRUD operations use 'manager_' + verb (list/get/create/update/delete), while auxiliary tools use verb_noun (prepare_attachment, open_permissions_panel, refresh_catalog). The mix is not chaotic, but the 'manager_' prefix is applied inconsistently (manager_permissions, manager_catalog are nouns, not verbs), so it is not fully uniform.

Tool Count5/5

13 tools is within the ideal range and perfectly scoped for a full Manager integration covering catalog discovery, CRUD operations, permissions, attachments, and raw API access. Each tool serves a distinct need without redundancy or bloat.

Completeness5/5

The tool surface is essentially complete for the Manager domain: it covers business discovery, permission introspection, catalog browsing and refreshing, full CRUD for arbitrary resources, list/search, file preparation for evidence, and raw API fallbacks. There are no obvious dead ends or missing lifecycle stages.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP-compatible AI agents to safely act on business backends by enforcing per-agent permissions, autonomy thresholds, human approval with review-and-edit, and full audit trails.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to securely access and interact with Odoo data through natural language, supporting full CRUD operations, OAuth 2.1 and API key authentication, and granular per-model permissions.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to read local business data and request database mutations, while requiring human approval before updates or deletions are executed. It provides read-only tools, approval workflows, and audit logging to prevent autonomous destructive changes.
    -