Skip to main content
Glama
Swandive-Inc

makeleaps-mcp

Official
by Swandive-Inc

makeleaps-mcp

MakeLeapsの取引先、見積書、請求書をLLMから操作するための、非公式・ローカル実行専用MCPサーバーです。

HubSpotなど他サービスとの接続処理は含みません。LLMクライアントがHubSpot ConnectorとこのMCPサーバーを同時に利用し、必要な情報をツール間で受け渡す構成を想定しています。

IMPORTANT

このプロジェクトはMakeLeaps株式会社による公式製品ではありません。MakeLeaps APIを利用した実装について、MakeLeapsは技術サポートを提供していません。

特徴

  • stdioによるローカル実行のみ

  • ホステッドサービス、リモートHTTP、テレメトリーなし

  • MakeLeapsの認証情報と請求データを開発者側へ送信しない

  • 金額を浮動小数点数ではなくDecimalとして検証

  • MakeLeapsのテンプレートに応じた税区分の検証

  • ローカルSQLiteを用いた書き込み操作の二重実行防止

  • 書類の送付機能は提供しない

Related MCP server: Frappe Assistant Core

利用者向け

提供ツール

ツール

内容

search_clients

取引先の一覧取得・検索

get_client

取引先とデフォルト連絡先の取得

create_organization_client

法人取引先の作成

list_document_templates

見積書・請求書テンプレートの取得

search_documents

見積書・請求書の検索

get_document

書類詳細の取得

create_quote

見積書の作成

create_invoice

請求書の作成

create_quotecreate_invoiceは書類をMakeLeapsへ保存しますが、取引先への送付は行いません。 HubSpotのDeal名など、書類の案件名はproject_nameで指定できます。

create_organization_clientでは法人名に加えて、法人のメールアドレス・電話番号・FAX番号・住所・適格請求書発行事業者登録番号と、任意の担当者を登録できます。住所を指定する場合は、MakeLeaps APIの仕様に従ってformatと2文字の国コードcountry_nameが必須です。

書類には取引先向けの備考messageとは別に、MakeLeaps内だけで使用する社内メモnoteと発注番号purchase_order_idsを設定できます。create_invoiceでは請求対象期間も指定できます。

必要環境

  • Python 3.12以上

  • uv

  • MakeLeapsのAPI Client ID、Client Secret、Partner MID

MakeLeapsの管理画面からAPIキーを発行してください。APIは本番データへ接続され、サンドボックス環境は提供されていません。

セットアップ

git clone https://github.com/Swandive-Inc/makeleaps-mcp.git
cd makeleaps-mcp
uv sync --frozen

次の環境変数をMCPクライアントから渡します。

環境変数

必須

内容

MAKELEAPS_CLIENT_ID

はい

MakeLeaps API Client ID

MAKELEAPS_CLIENT_SECRET

はい

MakeLeaps API Client Secret

MAKELEAPS_PARTNER_MID

はい

MakeLeaps Partner MID

MAKELEAPS_STATE_PATH

いいえ

冪等性管理用SQLiteファイルの保存先

MAKELEAPS_STATE_PATHを省略した場合は、OS標準のユーザーデータディレクトリへ保存します。認証トークンや書類本文はSQLiteへ保存しません。

MCPクライアントの設定例です。パスと認証情報を利用環境に合わせて変更してください。

{
  "mcpServers": {
    "makeleaps": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\makeleaps-mcp",
        "run",
        "makeleaps-mcp"
      ],
      "env": {
        "MAKELEAPS_CLIENT_ID": "your-client-id",
        "MAKELEAPS_CLIENT_SECRET": "your-client-secret",
        "MAKELEAPS_PARTNER_MID": "your-partner-mid"
      }
    }
  }
}

秘密情報を.envやMCPクライアントの設定ファイルへ保存する場合は、ファイルのアクセス権とバックアップ先を確認してください。秘密情報をGitへコミットしないでください。

LLMへの依頼例

HubSpotのDeal 12345を取得し、会社と担当者をMakeLeapsで検索してください。
見積内容を提示して私の確認を取ったあと、MakeLeapsへ見積書を作成してください。
送付はしないでください。

利用上の注意

  • HubSpotのIDをexternal_idへ保存する場合は、既存運用で同フィールドを使っていないか確認してください。すでに別システムとの対応付けに利用している場合は上書きしないでください。

  • APIへの送信後に通信が切れた場合は、MakeLeaps上で作成結果を確認してください。

開発者向け

二重作成の防止

書き込みツールはoperation_keyを必須引数とし、呼び出し元と対象を識別できる安定した値を受け取ります。

hubspot:deal:12345:quote:v1

同じキーと同じ入力を再実行すると、MakeLeaps APIを再度呼ばず、ローカルSQLiteに保存した結果を返します。同じキーを異なる入力で再利用した場合はエラーになります。

APIへの送信後に通信が切れた場合は、結果が確定できないため同じ操作を自動再実行しません。通信結果が不明なまま書類を二重作成することを防ぐためです。

開発

uv sync --frozen
uv run ruff format --check .
uv run ruff check .
uv run pytest

テストはMakeLeaps APIをモックし、本番アカウントへ接続しません。

セキュリティ

  • MCPサーバーはstdioのみで動作し、待受ポートを開きません。

  • APIアクセストークンはメモリ内でのみ保持し、期限切れ前に更新します。

  • 顧客情報、書類内容、認証情報をログへ出力しません。

  • 書類送付や削除のツールは実装していません。

参考資料

ライセンス

MIT License

Available Tools

8 tools
create_invoiceA
Idempotent

MakeLeapsに請求書を作成する。送付は行わない。

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoMakeLeaps内で使用する社内メモ
messageNo
currencyYes
due_dateYes
client_midYes
issue_dateYes
line_itemsYes
external_idNo
project_nameNoMakeLeapsの案件名。HubSpotのDeal名などを指定する
operation_keyYes
document_numberNo
document_templateYes
client_contact_midYes
purchase_order_idsNo取引先から受領した発注番号
invoicing_period_end_dateNo請求対象期間の終了日
invoicing_period_start_dateNo請求対象期間の開始日

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover idempotency and non-destructiveness. The description adds a key behavioral trait beyond annotations: the invoice is created but not sent (送付は行わない), preventing misuse where the agent expects sending. It does not disclose return details, but the output schema likely covers that.

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 a single, front-loaded sentence with two essential pieces of information: the primary action (create invoice) and a critical limitation (does not send). Every word contributes value, making it appropriately concise.

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?

Despite having 16 parameters and multiple required fields, the description is minimal and does not explain the invoice-creation workflow, required data, or any special rules. It only clarifies the non-sending aspect. The low schema description coverage and absence of parameter guidance make this incomplete for a complex operation.

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 only 31%, and the description provides no parameter-level explanations. Field names like operation_key, document_template, client_contact_mid, and tax_type are left without clarification, so the agent must infer meaning from names alone. With low coverage, the description fails to compensate.

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 and resource: 'Create an invoice in MakeLeaps' (請求書を作成する). It also adds a scope limitation 'does not send' (送付は行わない), which distinguishes this tool from sending-related actions and sibling tools like create_quote.

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 establishes clear context (creating an invoice) and explicitly states a when-not: 'does not send it' (送付は行わない), implying this tool should not be used when the goal is to send an invoice. However, it does not explicitly name alternatives or specify when to choose this over siblings.

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

create_organization_clientA
Idempotent

法人の取引先を作成する。

operation_keyには呼び出し元で一意かつ再利用可能な値を指定する。同じキーと同じ入力を 再実行した場合は保存済み結果を返し、異なる入力でのキー再利用は拒否する。

ParametersJSON Schema
NameRequiredDescriptionDefault
lang_codeNo
external_idNo
operation_keyYes
contact_personNo
organization_nameYes
organization_emailNo
organization_addressNo
organization_fax_numberNo
tax_registration_numberNo
organization_phone_numberNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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

The description adds significant behavioral detail beyond the annotations: it precisely defines the idempotency semantics (same key+same input → saved result; same key+different input → rejected). This goes beyond the generic idempotentHint annotation and clarifies the tool's behavior without contradicting any 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 only two sentences, with the purpose stated first and the crucial idempotency behavior second. Every sentence carries important information, and there is no filler or repetition of schema details.

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 that the tool has 10 parameters including nested objects, the description is somewhat thin. It focuses almost entirely on operation_key and does not mention the required organization_name, external_id, or address structure. The output schema and annotations provide some structural context, but for a parameter-rich creation tool, more guidance on typical usage and parameter relationships would be beneficial.

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 very low (0% per context, or at most 2 of 10 top-level parameters have descriptions). The description fully explains operation_key, which is critical, but it does nothing to clarify the remaining parameters such as external_id, lang_code, or tax_registration_number. With low coverage, the description must compensate more broadly, and it does 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?

The description opens with '法人の取引先を作成する' (creates a corporate client), which is a specific verb-resource pairing that clearly states the tool's function. This distinguishes it from sibling tools like create_quote and create_invoice, which create different entity types.

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 clear context that this tool is for creating corporate clients and includes specific usage guidance for operation_key: it must be unique per caller, reusable, and re-executing with the same key and input returns the saved result while reusing the key with different input is rejected. However, it does not explicitly mention when to use this tool over alternatives or provide exclusion criteria, so it stops short of a 5.

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

create_quoteA
Idempotent

MakeLeapsに見積書を作成する。送付は行わない。

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoMakeLeaps内で使用する社内メモ
messageNo
currencyYes
client_midYes
issue_dateYes
line_itemsYes
external_idNo
valid_untilYes
project_nameNoMakeLeapsの案件名。HubSpotのDeal名などを指定する
operation_keyYes
document_numberNo
document_templateYes
client_contact_midYes
purchase_order_idsNo取引先から受領した発注番号

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds important context that the quote is created but not sent, which is beyond annotation-provided safety profiles. This is meaningful behavioral disclosure for a mutation tool.

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 short sentences, front-loaded with the core action. Every word earns its place, and it avoids redundant information already present in annotations or schema.

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?

Despite having an output schema and annotations, the description is too thin for a complex create tool with 14 parameters. It does not explain prerequisites (e.g., client_mid must exist), how fields like line_items map to MakeLeaps concepts, or any expected workflow. The no-send detail is helpful but leaves major gaps.

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 only 21%, with most of the 14 parameters lacking descriptions. The tool description does not compensate by explaining any parameters. For a create operation with 8 required fields, this leaves significant ambiguity for the agent on how to populate required fields correctly.

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 '作成する' (create) and the resource '見積書' (quotation) in MakeLeaps, distinguishing it from sibling tools like create_invoice. The explicit '送付は行わない' (does not send) adds a critical scoping detail.

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 description implies usage for creating a quote without sending, but provides no explicit guidance on when to use this tool vs alternatives (e.g., create_invoice) or any prerequisites like client/template existence. The no-send clarification is a mild usage hint but not sufficient for a clear distinction.

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

get_clientA
Read-onlyIdempotent

MakeLeaps IDを指定して取引先とデフォルト連絡先の詳細を取得する。

ParametersJSON Schema
NameRequiredDescriptionDefault
client_midYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description doesn't need to cover safety. It adds useful context by specifying that both client and default contact details are returned, but doesn't disclose edge cases like not-found behavior. This matches the get_calls calibration baseline.

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 a single, front-loaded sentence with no redundancy. Every word contributes value.

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 simple get-by-ID tool with rich annotations and an output schema, the description is complete. It covers the resource scope and parameter semantics, and nothing else is needed.

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 schema has 0% description coverage for client_mid, but the description compensates by calling it the MakeLeaps ID (MakeLeaps IDを指定して). This gives the parameter its necessary meaning, and with only one parameter, this is sufficient.

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 (取得する), the resource (取引先とデフォルト連絡先), and the exact scope (MakeLeaps IDを指定して). It distinguishes itself from siblings like search_clients (which searches) and create_organization_client (which creates).

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 implies usage when you have a MakeLeaps ID, providing clear context. It doesn't explicitly mention alternatives or when-not-to-use, but sibling names like search_clients make the distinction obvious.

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

get_documentA
Read-onlyIdempotent

MakeLeaps IDを指定して見積書または請求書の詳細を取得する。

ParametersJSON Schema
NameRequiredDescriptionDefault
document_midYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds the scope (quotes/invoices) but no additional behavior such as error handling or required permissions. No contradiction.

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, clear sentence in Japanese with no extraneous words. Front-loaded with the action and scope.

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 simple single-parameter read tool with a readOnlyHint annotation and an output schema, the description provides sufficient information about the input and purpose. The only missing piece is alternative guidance, already penalized in usage_guidelines.

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 schema only states document_mid is a string with no description. The tool description compensates by identifying it as a MakeLeaps ID, giving the parameter semantic meaning beyond type. However, it does not describe format or examples, so not a full 5.

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

Purpose5/5

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

The description clearly states the tool retrieves details of quotes or invoices by MakeLeaps ID, with a specific verb (取得する) and resource (見積書/請求書). It is distinct from sibling search_documents which would search without an ID.

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?

No explicit guidance on when to use this tool vs search_documents or other siblings. It implies an ID is required but does not state that search_documents should be used when the ID is unknown.

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

list_document_templatesA
Read-onlyIdempotent

見積書または請求書で利用可能なMakeLeapsテンプレートを取得する。

ParametersJSON Schema
NameRequiredDescriptionDefault
document_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the scoping to document types but no additional behavioral details such as pagination or return format, which is acceptable given the output schema exists.

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 a single concise sentence that front-loads the core purpose. Every word is necessary, with no redundancy or unnecessary detail.

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 one clear parameter, rich annotations, and an output schema, the description adequately covers the tool's purpose for a simple list operation. It could mention the scope of templates (e.g., all templates vs. filtered), but the openWorldHint and straightforward nature make it sufficient.

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 single parameter document_type is defined by an enum in the schema, and the description restates the allowed values ('quotes or invoices') in natural language. This compensates for the 0% schema description coverage, as the agent can map the parameter to the intended document types.

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 specifies a clear resource (MakeLeaps templates) and action (取得=get), scoped to quotes or invoices. This distinguishes it from sibling tools, which focus on clients and document creation, not template retrieval.

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 implies the tool is for retrieving templates for quote or invoice documents, providing clear context. It does not explicitly mention alternatives or when not to use, but no sibling tool offers template retrieval, so the purpose alone signals the appropriate situation.

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

search_clientsB
Read-onlyIdempotent

MakeLeapsの取引先を検索する。searchを省略すると取引先一覧を返す。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo
archivedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already mark this as read-only and idempotent, so the description's note that omitting search returns a list adds a real behavioral detail. It explains that the tool returns a list even when search is empty, which is not obvious from the schema. However, it does not disclose other behaviors like the meaning of default limit or archived handling, though annotations lower the 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 description is two short sentences with no wasted words. It states the core purpose and one key behavior efficiently, making it easy to scan and digest. Ideal conciseness.

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?

Despite an output schema, the description is incomplete for a tool with three optional parameters. It only covers the search omission behavior and provides no explanation of limit or archived filters. It also lacks any indication of when to use this tool versus other related tools, leaving the agent underinformed for decision-making.

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?

With 0% schema description coverage, the description is the only source of parameter meaning. It only implies the role of 'search' by saying what happens when it is omitted (a list is returned), but it does not explain 'limit' (pagination) or 'archived' (include archived clients), which are non-obvious. This is a significant gap for a 3-parameter tool.

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 clearly states the tool 'searches MakeLeaps clients' with a specific verb and resource, and notes that omitting search returns a full list. This gives a clear sense of what the tool does. However, it does not explicitly distinguish itself from the sibling tool get_client, relying on the inherent contrast between 'search' and 'get'.

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 offers no guidance on when to use this tool versus alternatives like get_client or create_organization_client. It only describes the default behavior when search is omitted, but does not mention when to apply the archived filter or how limit works, leaving the agent without clear selection criteria.

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

search_documentsB
Read-onlyIdempotent

見積書または請求書を条件検索する。日付は発行日の範囲を表す。

ParametersJSON Schema
NameRequiredDescriptionDefault
paidNo
sentNo
limitNo
searchNo
date_toNo
date_fromNo
client_midNo
document_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare this as a safe read-only operation, so the description does not need to repeat that. It adds valuable context by clarifying that the date parameters represent the issue date range, which is a behavioral detail not present in annotations. This enhances transparency beyond the structured data.

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 extremely concise, consisting of two short sentences. It front-loads the core purpose and adds the essential date clarification without any redundant words. Every word earns its place.

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 has 8 parameters and an output schema, the description is minimal but functionally adequate. It specifies the document types and date range, but lacks details on other filter behaviors or how results are returned. However, the output schema and annotations fill some gaps, so it's above average but not comprehensive for such a parameter-rich tool.

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 compensate for parameter understanding. It only explains the date semantics ('日付は発行日の範囲を表す'), leaving other parameters like paid, sent, search, and client_mid without explicit explanation. While some names are self-explanatory, client_mid is ambiguous, and the description does not clarify filtering logic.

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 clearly states a specific verb ('条件検索' = search) and resource ('見積書または請求書' = quotes/invoices), making the tool's purpose evident. It does not explicitly differentiate from siblings like search_clients, but the document type restriction provides reasonable distinction.

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 offers no guidance on when to use this tool versus alternatives. It does not mention related tools such as get_document for retrieving a single document or create_quote/create_invoice for creation. The usage context is only implied by the tool's purpose, with no explicit exclusions or recommendations.

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. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.0
    • First observedcreate_invoice
    • First observedcreate_organization_client
    • First observedcreate_quote
    • First observedget_client
    • First observedget_document
    • First observedlist_document_templates
    • First observedsearch_clients
    • First observedsearch_documents

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: clients vs documents, search/get/create are clearly separated. There is no ambiguity between e.g. search_documents and get_document or create_quote and create_invoice.

Naming Consistency5/5

All tools follow the verb_noun pattern with consistent snake_case style (search_, get_, create_, list_). Even the longer create_organization_client fits the convention, and there are no mixed naming styles.

Tool Count5/5

With 8 tools covering clients and documents (quotes/invoices), the set is well-scoped and each tool has a clear purpose. It sits comfortably in the ideal 3-15 range.

Completeness4/5

The tool surface covers core workflows: search/get/create for clients, and search/get/create plus template listing for documents. Minor gaps exist, such as no update/delete operations and no creation of individual (non-organization) clients, but agents can work around these.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for the FreeAgent accounting API, enabling LLMs to securely access and manage accounting data including contacts, invoices, bills, bank transactions, and more.
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that enables LLMs to interact with ERPNext/Frappe sites for document CRUD, search, reports, workflows, and analytics, respecting user permissions and logging all actions.
    295
    AGPL 3.0
  • A
    license
    B
    quality
    F
    maintenance
    MCP server for Invoice Ninja v5 API. Enables AI assistants to manage clients, invoices, quotes, payments, and time tracking through natural language.
    32
    22
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Swandive-Inc/makeleaps-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server