makeleaps-mcp
OfficialClick 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., "@makeleaps-mcpSearch for client 'Acme Corp' and create a quote for project 'Website Redesign' with amount ¥300,000"
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.
makeleaps-mcp
MakeLeapsの取引先、見積書、請求書をLLMから操作するための、非公式・ローカル実行専用MCPサーバーです。
HubSpotなど他サービスとの接続処理は含みません。LLMクライアントがHubSpot ConnectorとこのMCPサーバーを同時に利用し、必要な情報をツール間で受け渡す構成を想定しています。
このプロジェクトはMakeLeaps株式会社による公式製品ではありません。MakeLeaps APIを利用した実装について、MakeLeapsは技術サポートを提供していません。
特徴
stdioによるローカル実行のみ
ホステッドサービス、リモートHTTP、テレメトリーなし
MakeLeapsの認証情報と請求データを開発者側へ送信しない
金額を浮動小数点数ではなく
Decimalとして検証MakeLeapsのテンプレートに応じた税区分の検証
ローカルSQLiteを用いた書き込み操作の二重実行防止
書類の送付機能は提供しない
Related MCP server: Frappe Assistant Core
利用者向け
提供ツール
ツール | 内容 |
| 取引先の一覧取得・検索 |
| 取引先とデフォルト連絡先の取得 |
| 法人取引先の作成 |
| 見積書・請求書テンプレートの取得 |
| 見積書・請求書の検索 |
| 書類詳細の取得 |
| 見積書の作成 |
| 請求書の作成 |
create_quoteとcreate_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以上
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 API Client ID |
| はい | MakeLeaps API Client Secret |
| はい | MakeLeaps Partner MID |
| いいえ | 冪等性管理用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アクセストークンはメモリ内でのみ保持し、期限切れ前に更新します。
顧客情報、書類内容、認証情報をログへ出力しません。
書類送付や削除のツールは実装していません。
参考資料
ライセンス
Available Tools
8 toolscreate_invoiceAIdempotent
MakeLeapsに請求書を作成する。送付は行わない。
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | MakeLeaps内で使用する社内メモ | |
| message | No | ||
| currency | Yes | ||
| due_date | Yes | ||
| client_mid | Yes | ||
| issue_date | Yes | ||
| line_items | Yes | ||
| external_id | No | ||
| project_name | No | MakeLeapsの案件名。HubSpotのDeal名などを指定する | |
| operation_key | Yes | ||
| document_number | No | ||
| document_template | Yes | ||
| client_contact_mid | Yes | ||
| purchase_order_ids | No | 取引先から受領した発注番号 | |
| invoicing_period_end_date | No | 請求対象期間の終了日 | |
| invoicing_period_start_date | No | 請求対象期間の開始日 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_clientAIdempotent
法人の取引先を作成する。
operation_keyには呼び出し元で一意かつ再利用可能な値を指定する。同じキーと同じ入力を 再実行した場合は保存済み結果を返し、異なる入力でのキー再利用は拒否する。
| Name | Required | Description | Default |
|---|---|---|---|
| lang_code | No | ||
| external_id | No | ||
| operation_key | Yes | ||
| contact_person | No | ||
| organization_name | Yes | ||
| organization_email | No | ||
| organization_address | No | ||
| organization_fax_number | No | ||
| tax_registration_number | No | ||
| organization_phone_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_quoteAIdempotent
MakeLeapsに見積書を作成する。送付は行わない。
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | MakeLeaps内で使用する社内メモ | |
| message | No | ||
| currency | Yes | ||
| client_mid | Yes | ||
| issue_date | Yes | ||
| line_items | Yes | ||
| external_id | No | ||
| valid_until | Yes | ||
| project_name | No | MakeLeapsの案件名。HubSpotのDeal名などを指定する | |
| operation_key | Yes | ||
| document_number | No | ||
| document_template | Yes | ||
| client_contact_mid | Yes | ||
| purchase_order_ids | No | 取引先から受領した発注番号 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_clientARead-onlyIdempotent
MakeLeaps IDを指定して取引先とデフォルト連絡先の詳細を取得する。
| Name | Required | Description | Default |
|---|---|---|---|
| client_mid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_documentARead-onlyIdempotent
MakeLeaps IDを指定して見積書または請求書の詳細を取得する。
| Name | Required | Description | Default |
|---|---|---|---|
| document_mid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_templatesARead-onlyIdempotent
見積書または請求書で利用可能なMakeLeapsテンプレートを取得する。
| Name | Required | Description | Default |
|---|---|---|---|
| document_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_clientsBRead-onlyIdempotent
MakeLeapsの取引先を検索する。searchを省略すると取引先一覧を返す。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | No | ||
| archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_documentsBRead-onlyIdempotent
見積書または請求書を条件検索する。日付は発行日の範囲を表す。
| Name | Required | Description | Default |
|---|---|---|---|
| paid | No | ||
| sent | No | ||
| limit | No | ||
| search | No | ||
| date_to | No | ||
| date_from | No | ||
| client_mid | No | ||
| document_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
8 tool updates
v0.1.0- First observed
create_invoice - First observed
create_organization_client - First observed
create_quote - First observed
get_client - First observed
get_document - First observed
list_document_templates - First observed
search_clients - First observed
search_documents
TDQS
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.
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.
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.
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
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
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for Codat — companies, connections, invoices, bills and financial statements.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for the FreeAgent accounting API, enabling LLMs to securely access and manage accounting data including contacts, invoices, bills, bank transactions, and more.51MIT
- AlicenseNot gradedqualityAmaintenanceMCP 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.295AGPL 3.0
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to interact with Moxie CRM. Provides comprehensive tools for managing clients, contacts, projects, invoices, time tracking, and more.30152MIT
- AlicenseBqualityFmaintenanceMCP server for Invoice Ninja v5 API. Enables AI assistants to manage clients, invoices, quotes, payments, and time tracking through natural language.32222MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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