invoiceninja-mcp-server
Provides tools for interacting with Invoice Ninja v5 (self-hosted) API, enabling management of invoices, clients, payments, and other resources through CRUD operations, bulk actions, and reports.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@invoiceninja-mcp-serverlist my recent invoices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Invoice Ninja MCP Server
An MCP (Model Context Protocol) server for Invoice Ninja v5, connecting your self-hosted invoicing data to AI tools.
Quick start
Claude
bash (macOS/Linux):
INVOICENINJA_BASE_URL="https://invoicing.yourdomain.com"
INVOICENINJA_API_TOKEN="your-api-token"
claude mcp add invoiceninja \
--env INVOICENINJA_BASE_URL="$INVOICENINJA_BASE_URL" \
--env INVOICENINJA_API_TOKEN="$INVOICENINJA_API_TOKEN" \
-- npx -y @nightsquawktech/invoiceninja-mcp-serverPowerShell (Windows):
$INVOICENINJA_BASE_URL = "https://invoicing.yourdomain.com"
$INVOICENINJA_API_TOKEN = "your-api-token"
claude mcp add invoiceninja `
--env "INVOICENINJA_BASE_URL=$INVOICENINJA_BASE_URL" `
--env "INVOICENINJA_API_TOKEN=$INVOICENINJA_API_TOKEN" `
-- npx -y @nightsquawktech/invoiceninja-mcp-serverCursor
Or put the mcp.json block in .cursor/mcp.json, then verify with:
agent mcp list(The Cursor CLI manages configured servers but has no mcp add; install is via the button or mcp.json.)
VS Code
bash (macOS/Linux):
INVOICENINJA_BASE_URL="https://invoicing.yourdomain.com"
INVOICENINJA_API_TOKEN="your-api-token"
code --add-mcp '{"name":"invoiceninja","command":"npx","args":["-y","@nightsquawktech/invoiceninja-mcp-server"],"env":{"INVOICENINJA_BASE_URL":"'"$INVOICENINJA_BASE_URL"'","INVOICENINJA_API_TOKEN":"'"$INVOICENINJA_API_TOKEN"'"}}'PowerShell (Windows):
$INVOICENINJA_BASE_URL = "https://invoicing.yourdomain.com"
$INVOICENINJA_API_TOKEN = "your-api-token"
$config = @{
name = "invoiceninja"
command = "npx"
args = @("-y", "@nightsquawktech/invoiceninja-mcp-server")
env = @{
INVOICENINJA_BASE_URL = $INVOICENINJA_BASE_URL
INVOICENINJA_API_TOKEN = $INVOICENINJA_API_TOKEN
}
} | ConvertTo-Json -Compress
code --add-mcp $configCodex
bash (macOS/Linux):
INVOICENINJA_BASE_URL="https://invoicing.yourdomain.com"
INVOICENINJA_API_TOKEN="your-api-token"
codex mcp add invoiceninja \
--env INVOICENINJA_BASE_URL="$INVOICENINJA_BASE_URL" \
--env INVOICENINJA_API_TOKEN="$INVOICENINJA_API_TOKEN" \
-- npx -y @nightsquawktech/invoiceninja-mcp-serverPowerShell (Windows):
$INVOICENINJA_BASE_URL = "https://invoicing.yourdomain.com"
$INVOICENINJA_API_TOKEN = "your-api-token"
codex mcp add invoiceninja `
--env "INVOICENINJA_BASE_URL=$INVOICENINJA_BASE_URL" `
--env "INVOICENINJA_API_TOKEN=$INVOICENINJA_API_TOKEN" `
-- npx -y @nightsquawktech/invoiceninja-mcp-serverOr add it to ~/.codex/config.toml under [mcp_servers.invoiceninja].
mcp.json
Every environment variable the server reads, with recommended values:
{
"mcpServers": {
"invoiceninja": {
"command": "npx",
"args": ["-y", "@nightsquawktech/invoiceninja-mcp-server"],
"env": {
"INVOICENINJA_BASE_URL": "https://invoicing.yourdomain.com",
"INVOICENINJA_API_TOKEN": "your-api-token",
"INVOICENINJA_TIMEOUT_MS": "30000"
}
}
}
}File locations: .mcp.json in your project root (Claude Code), claude_desktop_config.json (Claude Desktop), .cursor/mcp.json (Cursor).
Related MCP server: Cin7 Core Meta MCP Server
Configuration
Variable | Required | Default | Purpose |
| yes | Your Invoice Ninja v5 instance URL, no trailing slash, no | |
| yes | API token from Settings > Account Management > Integrations > API tokens, sent as | |
| no |
| HTTP timeout for API requests, minimum 1000 |
Security & write safety
Invoice Ninja credentials: create a dedicated API token under a restricted user (Settings > User Management) and grant that user only the permissions the assistant needs; the token inherits the user's permissions.
Read-only endpoints (186 GETs) execute freely.
Mutating endpoints (193 POST/PUT/DELETE operations) are refused unless the call carries
authorization_confirmed: trueand a non-emptyauthorization_notedescribing the user's explicit approval. There is no blanket write mode: authorization is per call.Before every mutating call, the server writes a JSON backup of the full request to a local temp directory. For updates and deletes it also fetches the current record first (best-effort) and stores it in the backup, so the change is reversible. The backup file path is returned in the tool response.
Any
{action}route (email, mark_paid, archive, restore, delete, clone) is treated as mutating even when registered as a GET, so destructive actions can never slip past the guard.All requests go directly from your machine to your Invoice Ninja instance; nothing passes through third parties.
The authorization gate is a guardrail, not a security boundary.INVOICENINJA_API_TOKEN in your MCP config is a real Invoice Ninja API token, and an AI agent with shell access can bypass the MCP tools and call the Invoice Ninja API directly with it. If you need hard read-only, enforce it at the source: issue the token under a user whose permissions are scoped down in Invoice Ninja itself.
Tools
Instead of one tool per endpoint (379 tools would drown any model's tool selection), this server ships a generated endpoint catalog behind three generic tools: list_endpoints to discover operations, describe_endpoint for the exact parameter spec of one operation, and call_endpoint to execute it. The pattern comes from mcp-core, the shared catalog runtime used across NightSquawk MCP servers.
list_endpoints List/filter all 379 endpoints by category, read-vs-mutating, or search term
describe_endpoint Full spec for one endpoint: method, path, params, body fields, mutating flag
call_endpoint Execute an endpoint; mutating calls need per-call authorization and are backed up firstAPI coverage
379 operations covered: 186 read-only, 193 mutating.
Category | Operations |
reports | 27 |
clients | 14 |
invoices | 12 |
quotes | 12 |
bank_integrations | 11 |
payments | 11 |
purchase_orders | 11 |
recurring_invoices | 11 |
users | 11 |
companies | 10 |
tasks | 10 |
bank_transactions | 9 |
credits | 9 |
expenses | 9 |
group_settings | 9 |
products | 9 |
projects | 9 |
recurring_expenses | 9 |
recurring_quotes | 9 |
vendors | 9 |
bank_transaction_rules | 8 |
company_gateways | 8 |
designs | 8 |
expense_categories | 8 |
payment_terms | 8 |
subscriptions | 8 |
tags | 8 |
task_status | 8 |
tokens | 8 |
webhooks | 8 |
client_gateway_tokens | 7 |
locations | 7 |
task_schedulers | 7 |
tax_rates | 7 |
auth | 6 |
activities | 4 |
charts | 4 |
imports | 3 |
migration | 3 |
postmark | 3 |
ping | 2 |
preview | 2 |
system_logs | 2 |
templates | 2 |
update | 2 |
claim_license | 1 |
company_ledger | 1 |
company_user | 1 |
connected_account | 1 |
documents | 1 |
emails | 1 |
export | 1 |
health_check | 1 |
logout | 1 |
one_time_token | 1 |
refresh | 1 |
scheduler | 1 |
search | 1 |
statics | 1 |
support | 1 |
webcron | 1 |
yodlee | 1 |
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
GET |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
GET |
|
|
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
DELETE |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
POST |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
DELETE |
|
|
GET |
|
|
PUT |
|
|
GET |
|
|
POST |
|
|
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
GET |
|
|
POST |
|
|
DELETE |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
GET |
|
|
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
Method | Path | Operation ID |
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
Method | Path | Operation ID |
GET |
|
|
Method | Path | Operation ID |
POST |
|
|
Contributing
Contributions and issues are welcome. Please open an issue first before submitting a PR.
License
AGPL-3.0: free for personal and open-source use. Organizations that cannot comply with the AGPL can purchase a commercial license, and hosted/managed versions are available. See COMMERCIAL.md or contact hello@nightsquawk.tech.
Copyright
For copyright concerns or takedown requests, contact hello@nightsquawk.tech.
Available Tools
3 toolscall_endpointA
Call an Invoice Ninja API endpoint and return its response. Validates the endpoint name and required path parameters against the catalog before calling. Mutating endpoints (POST/PUT/DELETE) require authorization_confirmed=true and an authorization_note and are backed up before execution. Use describe_endpoint first to learn the exact parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses important behaviors: validation against a catalog, required authorization for mutations, and automatic backups. This provides good transparency about safety and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, each conveying necessary information: purpose, validation, mutation behavior, and usage tip. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers validation and mutation authorization but omits response format and error handling. Given the tool's complexity and lack of output schema, more details on response and optional parameters would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The main description mentions endpoint_name and required path parameters but does not elaborate on other parameters like body, files, query, file_field, or authorization fields. Given 0% schema description coverage, the description should compensate but falls short.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool calls an Invoice Ninja API endpoint and returns its response. This clearly distinguishes it from sibling tools that list or describe endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using describe_endpoint first to learn parameters and specifies authorization requirements for mutating endpoints. However, it does not explicitly state when to avoid using the tool or when to use list_endpoints instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_endpointA
Get the full specification for a single Invoice Ninja endpoint: HTTP method, path, path/query parameters, request-body fields (types, required, enums, descriptions), and whether it mutates data. Call this before call_endpoint to know exactly what to pass.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the return content in detail (method, path, parameters, request-body, mutation info), but doesn't explicitly state that the tool is read-only or mention any error scenarios. Still, it offers substantial transparency about what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a concise action directive. Every word adds value—no filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter (well-described in schema) and no output schema, the description covers what the tool returns (full specification) and when to use it. It could optionally mention that the output is a JSON object, but is otherwise complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for the sole parameter 'endpoint_name' with examples and a reference to list_endpoints. The tool description adds only usage advice ('Call this before call_endpoint'), not additional parameter semantics. Schema coverage is effectively 100% from the schema itself, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the full specification for a single endpoint, including method, path, parameters, request-body fields, and mutation info. It distinguishes from siblings by explicitly positioning it as a prerequisite to call_endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use: 'Call this before call_endpoint to know exactly what to pass.' This provides clear guidance on usage context relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_endpointsA
List Invoice Ninja API endpoints (slug, method, path, category, mutating, summary). Filter by category, read-vs-mutating, or a search term. Use this to discover which endpoint to call, then describe_endpoint for its parameters and call_endpoint to execute it.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It does not explicitly state the tool is read-only, mention authentication, rate limits, or side effects. The read-only nature is implied by 'list' and filter options, but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one defines the output fields, the second gives usage context and links to siblings. No wasted words, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists return fields. Could mention output is an array, but overall adequate for a discovery tool. Provides enough context for usage with siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per context, so description must compensate. It explains each filter: search (case-insensitive substring), category (omit to see all), mutating (boolean for read-vs-write). Adds value by suggesting to call without args to see categories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists API endpoints with specific fields (slug, method, path, etc.) and distinguishes from siblings by guiding the user to first use this tool, then describe_endpoint, then call_endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('to discover which endpoint to call') and provides a clear workflow with siblings: use this for discovery, describe_endpoint for parameters, call_endpoint to execute.
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.
3 tool updates
v0.1.0- First observed
call_endpoint - First observed
describe_endpoint - First observed
list_endpoints
TDQS
Scored across 3 tools
Each tool has a clear, distinct role: list_endpoints for discovery, describe_endpoint for details, and call_endpoint for execution. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern with snake_case (list_endpoints, describe_endpoint, call_endpoint), making the pattern predictable.
With only 3 tools, the set is minimal but well-suited for its meta-API exploration purpose. The count feels slightly low but efficient for the intended workflow.
The tool set covers the full lifecycle of API interaction: discover endpoints, inspect parameters, and execute calls. There are no missing operations for this domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Malaysian SME accounting, e-Invoice and payroll for your AI. 64 tools; writes are approved drafts.
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Discover, inspect and run 63,000+ agent tools from one balance. Pay per call, no subscriptions.
Universal AI API Orchestrator — 1,554 tools, 96 services. One install.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with QuickFile UK accounting software, providing access to invoicing, client management, purchases, banking, and financial reporting through 40+ tools covering the complete QuickFile API.4294MIT
- AlicenseAqualityCmaintenanceEnables AI to dynamically discover and invoke any Cin7 Core API endpoint using three generic tools (list, describe, invoke) plus a bug-report tool, covering the entire API surface without predefined endpoints.4MIT
- FlicenseNot gradedqualityBmaintenanceProvides 29 tools for Claude to query and update FreshBooks directly, including invoices, clients, estimates, expenses, payments, timesheets, and reports.-
- AlicenseNot gradedqualityBmaintenanceExposes the full Chatwoot API as 129 tools for AI assistants, enabling account, contact, conversation, message, inbox, team, report, help center, automation, and custom attribute management, plus exclusive Kanban and scheduled message features.13MIT