mcp-server-check
OfficialThis server wraps the Check Payroll API, providing comprehensive payroll and HR management through 263 tools organized across 20 toolsets.
Tool Discovery & Execution (Default Dynamic Mode)
search_tools— find relevant tools by keywordlist_toolsets— browse available categoriesrun_tool— execute any tool by name with arguments
Set CHECK_TOOL_MODE=all to expose all 263 tools individually instead.
Payroll & Payments Create, update, approve, reopen, preview, and delete payrolls; manage payroll items, contractor payments, and external payrolls; retry/refund/cancel payments; simulate payroll processing states in sandbox.
People Management
Employees: Create, update, onboard; manage paystubs, forms, SSN, tax elections, and attributes
Contractors: Create, update, onboard; manage payments, forms, and SSN/EIN
Companies: Create, update, onboard; manage signatories, enrollment, and embedded setup
Workplaces: Create and manage workplace locations
Compensation & Benefits Manage pay schedules, paydays, employee/company benefits, post-tax deductions, earning rates, earning codes, and net pay splits.
Tax Management Configure company/employee tax parameters and elections; manage filings and filing blockers; access tax statements, packages, and reference data (taxes, agencies, jurisdictions).
Documents & Forms Access and download company/employee/contractor tax documents; manage authorization and setup documents; list, render, validate, and submit forms.
Reporting Payroll journal, payroll summary, tax liabilities, contractor payments, W-2 preview, cash requirements, paper checks, and more.
Embedded UI Components Generate embeddable component URLs for 25 company workflows (e.g., run payroll, tax setup), 9 employee workflows (e.g., benefits, paystubs), and 1 contractor component (tax documents).
Platform & Integrations Manage webhooks, API logs, notifications, accounting sync, integration partners, and address validation.
Configuration & Safety
CHECK_READ_ONLY=1— disable all mutating toolsToolset and individual tool allow/exclude filtering via environment variables or HTTP headers
Sandbox environment for safe testing without real money movement
Cursor-based pagination (
limit+cursor) on all list tools
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., "@mcp-server-checklist my companies"
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.
mcp-server-check
⚠️ Early Access Beta — This MCP server is currently in beta and available to select partners. APIs, tools, and behavior may change without notice. Please share feedback with your Check point of contact.
Terms of Service — By using this MCP server to access the Check API, you agree to the MCP Usage Terms, which are in addition to your existing agreement with Check.
An MCP server that wraps the Check Payroll API, providing 261 tools for managing companies, employees, contractors, payrolls, tax configuration, embedded components, and more.
Quickstart
git clone https://github.com/check-technologies/mcp-server-check.git
cd mcp-server-check
uv sync
CHECK_API_KEY=your-key uv run mcp-server-checkRelated MCP server: TimePRO MCP Server
Configuration
Environment Variable | Required | Default | Description |
| Yes | — | Your Check API key (Bearer token) |
| No |
| API base URL |
| No |
| Tool mode: |
| No | — | Comma-separated list of toolsets to enable (e.g. |
| No | — | Comma-separated allowlist of individual tool names |
| No | — | Comma-separated list of tool names to hide |
| No | — | Set to |
| No |
| Transport protocol: |
Sandbox vs Production
By default the server connects to the Check sandbox (https://sandbox.checkhq.com), which is safe for testing and development. The sandbox supports simulation endpoints (e.g. simulate_start_processing, simulate_complete_funding) that let you advance payrolls through processing states without real money movement.
To point at production, set:
CHECK_API_BASE_URL=https://api.checkhq.comServer Configuration
The server supports fine-grained tool filtering, configurable via environment variables (for stdio) or HTTP headers (for SSE / streamable-http). This follows the GitHub MCP Server configuration pattern.
Feature | Environment Variable | HTTP Header |
Toolsets |
|
|
Individual tools |
|
|
Exclude tools |
|
|
Read-only |
|
|
Filtering precedence: exclude_tools > read_only > tools > toolsets. Exclude always wins; if tools is set it acts as an allowlist independent of toolsets.
Toolsets
There are 20 toolsets, one per API module: agencies, bank_accounts, companies, compensation, components, contractor_payments, contractors, documents, employees, external_payrolls, forms, logs, payments, payroll_items, payrolls, platform, tax, webhooks, workflows, workplaces.
Enable only specific toolsets:
CHECK_TOOLSETS=companies,employees CHECK_API_KEY=your-key uv run mcp-server-checkIndividual Tools
Allow only specific tools by name:
CHECK_TOOLS=list_companies,get_company,list_employees CHECK_API_KEY=your-key uv run mcp-server-checkExcluding Tools
Hide specific tools while keeping everything else:
CHECK_EXCLUDE_TOOLS=create_company,delete_company CHECK_API_KEY=your-key uv run mcp-server-checkRead-Only Mode
Set CHECK_READ_ONLY=1 to run the server with only read-only tools (list, get, download, preview, etc.). All create, update, delete, and other mutating tools are excluded. This is useful when you want to allow exploration of your Check data without risk of modifications.
CHECK_READ_ONLY=1 CHECK_API_KEY=your-key uv run mcp-server-checkHTTP Headers (Remote Transport)
When running with CHECK_TRANSPORT=sse or CHECK_TRANSPORT=streamable-http, clients can pass configuration via HTTP headers:
X-MCP-Toolsets: companies,employees
X-MCP-Readonly: true
X-MCP-Exclude-Tools: create_company,delete_companyHeader-based configuration takes precedence over environment variables when headers provide any filter settings.
Dynamic Tool Mode (Default)
By default, the server runs in dynamic mode (CHECK_TOOL_MODE=dynamic), exposing 3 meta-tools instead of all individual tools. This avoids sending every tool schema to the LLM upfront, saving significant context window space.
search_tools(query, toolset?, limit?)— Search for tools by keyword with synonym matching. Returns matching tools with their full parameter schemas.list_toolsets()— List all available toolsets with descriptions and example tools.run_tool(tool_name, arguments?)— Execute a tool by name with a dict of arguments.
The LLM workflow becomes: browse toolsets or search for relevant tools → review their parameter schemas → call run_tool with the correct arguments. All filtering (CHECK_TOOLSETS, CHECK_READ_ONLY, etc.) is applied at both the search and execution layers.
Set CHECK_TOOL_MODE=all to expose all tools individually (legacy mode):
CHECK_TOOL_MODE=all CHECK_API_KEY=your-key uv run mcp-server-checkUsage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"check": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-server-check", "mcp-server-check"],
"env": {
"CHECK_API_KEY": "your-api-key"
}
}
}
}Usage with Claude Code
claude mcp add check -- uv run --directory /path/to/mcp-server-check mcp-server-checkThen set the CHECK_API_KEY environment variable in your shell before running Claude Code.
Available Tools
261 tools organized across 17 categories. All list tools support limit and cursor parameters for cursor-based pagination — pass the cursor value from a previous response to fetch the next page.
Companies (26 tools)
Tool | Method | Description |
| GET | List companies with optional filters |
| GET | Get details for a specific company |
| POST | Create a new company |
| PATCH | Update an existing company |
| POST | Onboard a company to active status |
| GET | Get upcoming paydays for a company |
| GET | List tax deposits for a company |
| GET | Get benefit aggregations for a company |
| GET | Get payroll journal report; optional |
| GET | Get payroll summary report; optional |
| GET | Get tax liabilities report |
| GET | Get contractor payments report |
| GET | Get child support payments report |
| GET | Get W-4 exemption status report |
| GET | Get applied-for IDs detailed report |
| GET | Get W-2 preview report |
| GET | List federal EIN verifications |
| GET | Get a specific EIN verification |
| GET | List signatories for a company |
| POST | Create a signatory |
| GET | Get enrollment profile |
| PUT | Create enrollment profile |
| PATCH | Update enrollment profile |
| POST | Start implementation for a company |
| POST | Cancel implementation |
| POST | Request embedded setup |
Employees (17 tools)
Tool | Method | Description |
| GET | List employees with optional filters |
| GET | Get details for a specific employee |
| POST | Create a new employee |
| PATCH | Update an existing employee |
| POST | Onboard an employee to active status |
| GET | List paystubs for an employee |
| GET | Get a specific paystub |
| GET | List forms for an employee |
| GET | Get a specific employee form |
| POST | Submit an employee form |
| POST | Sign and submit an employee form |
| GET | Get company-defined attributes |
| PATCH | Update company-defined attributes |
| GET | Get reciprocity elections |
| PATCH | Update reciprocity elections |
| GET | Reveal employee SSN |
| POST | Authorize a partner for an employee |
Contractors (10 tools)
Tool | Method | Description |
| GET | List contractors with optional filters |
| GET | Get details for a specific contractor |
| POST | Create a new contractor |
| PATCH | Update an existing contractor |
| POST | Onboard a contractor to active status |
| GET | List payments for a contractor |
| GET | Get contractor payment for a payroll |
| GET | List forms for a contractor |
| POST | Submit a contractor form |
| GET | Reveal contractor SSN/EIN |
Workplaces (4 tools)
Tool | Method | Description |
| GET | List workplaces |
| GET | Get details for a specific workplace |
| POST | Create a new workplace |
| PATCH | Update an existing workplace |
Payrolls (15 tools)
Tool | Method | Description |
| GET | List payrolls with optional filters |
| GET | Get details for a specific payroll |
| POST | Create a new payroll |
| PATCH | Update an existing payroll |
| DELETE | Delete a payroll |
| GET | Preview a payroll before approval |
| POST | Approve a payroll for processing |
| POST | Reopen a previously approved payroll |
| GET | Get paper checks for a payroll |
| GET | Get cash requirement report |
| GET | Get paper checks report |
| POST | Simulate starting processing (sandbox) |
| POST | Simulate completing funding (sandbox) |
| POST | Simulate failing funding (sandbox) |
| POST | Simulate completing disbursements (sandbox) |
Payroll Items (8 tools)
Tool | Method | Description |
| GET | List payroll items |
| GET | Get details for a specific payroll item |
| POST | Create a new payroll item |
| PATCH | Update an existing payroll item |
| PATCH | Bulk update payroll items |
| DELETE | Delete a payroll item |
| DELETE | Bulk delete payroll items |
| GET | Get paper check for a payroll item |
Contractor Payments (6 tools)
Tool | Method | Description |
| GET | List contractor payments |
| GET | Get details for a specific payment |
| POST | Create a new contractor payment |
| PATCH | Update a contractor payment |
| DELETE | Delete a contractor payment |
| GET | Get paper check for a payment |
External Payrolls (8 tools)
Tool | Method | Description |
| GET | List external payrolls; optionally omit line items with |
| GET | Get details for a specific external payroll |
| POST | Create a new external payroll |
| PATCH | Update an external payroll |
| DELETE | Delete an external payroll |
| POST | Approve an external payroll |
| POST | Reopen an external payroll |
| GET | Preview an external payroll |
Compensation (32 tools)
Pay schedules, benefits, post-tax deductions, company benefits, earning rates, earning codes, and net pay splits.
Tool | Method | Description |
Pay Schedules | ||
| GET | List pay schedules |
| GET | Get a specific pay schedule |
| POST | Create a new pay schedule |
| PATCH | Update a pay schedule |
| DELETE | Delete a pay schedule |
| GET | Get paydays for a pay schedule |
Benefits | ||
| GET | List employee benefits |
| GET | Get a specific benefit |
| POST | Create an employee benefit |
| PATCH | Update a benefit |
| DELETE | Delete a benefit |
Post-Tax Deductions | ||
| GET | List post-tax deductions |
| GET | Get a specific post-tax deduction |
| POST | Create a post-tax deduction |
| PATCH | Update a post-tax deduction |
| DELETE | Delete a post-tax deduction |
Company Benefits | ||
| GET | List company-level benefits |
| GET | Get a specific company benefit |
| POST | Create a company benefit |
| PATCH | Update a company benefit |
| DELETE | Delete a company benefit |
Earning Rates | ||
| GET | List earning rates |
| GET | Get a specific earning rate |
| POST | Create an earning rate |
| PATCH | Update an earning rate |
Earning Codes | ||
| GET | List earning codes |
| GET | Get a specific earning code |
| POST | Create an earning code |
| PATCH | Update an earning code |
Net Pay Splits | ||
| GET | List net pay splits |
| GET | Get a specific net pay split |
| POST | Create a net pay split |
Bank Accounts (6 tools)
Tool | Method | Description |
| GET | List bank accounts |
| GET | Get a specific bank account |
| POST | Create a new bank account |
| PATCH | Update a bank account |
| DELETE | Delete a bank account |
| GET | Reveal full account number |
Documents (19 tools)
Tool | Method | Description |
Company Tax Documents | ||
| GET | List company tax documents |
| GET | Get a specific company tax document |
| GET | Download a company tax document |
Company Authorization Documents | ||
| GET | List authorization documents |
| GET | Get an authorization document |
| GET | Download an authorization document |
Employee Tax Documents | ||
| GET | List employee tax documents |
| GET | Get an employee tax document |
| GET | Download an employee tax document |
Contractor Tax Documents | ||
| GET | List contractor tax documents |
| GET | Get a contractor tax document |
| GET | Download a contractor tax document |
Setup Documents | ||
| GET | List setup documents |
| GET | Get a setup document |
| GET | Download a setup document |
Company Provided Documents | ||
| GET | List company-provided documents |
| GET | Get a company-provided document |
| POST | Create a company-provided document |
| POST | Upload a file for a document |
Forms (4 tools)
Tool | Method | Description |
| GET | List forms across all companies |
| GET | Get a specific form |
| GET | Render a form for display |
| POST | Validate form data before submission |
Logs (2 tools)
Tool | Method | Description |
| GET | List API request logs; filter by path, method, status code/class, log ID, idempotency key, and time range |
| GET | Get the full record for a single API request log |
Payments (6 tools)
Tool | Method | Description |
| GET | List payments |
| GET | Get a specific payment |
| GET | List payment attempts |
| POST | Retry a failed payment |
| POST | Refund a payment |
| POST | Cancel a payment |
Tax (28 tools)
Tax parameters, elections (including tax exemptions), filings, statements, packages, and tax reference data.
Tool | Method | Description |
Company Tax Params | ||
| GET | Get tax parameters for a company |
| PATCH | Update company tax parameters |
| GET | List tax parameter settings |
| GET | Get a specific tax param setting |
| GET | List tax jurisdictions for a company |
Employee Tax Params | ||
| GET | List employee tax parameters |
| GET | Get tax parameters for an employee |
| PATCH | Update employee tax parameters |
| GET | List employee tax param settings |
| GET | Get a specific setting |
| GET | List tax jurisdictions for an employee |
| POST | Bulk get tax param settings |
| POST | Bulk update tax param settings |
Company Tax Elections | ||
| GET | List tax elections (exemption settings); filter by company, tax, exemptible, jurisdiction |
| POST | Create company tax elections |
| PATCH | Update company tax elections (incl. exemptions) |
Employee Tax Elections | ||
| GET | List tax elections (exemption settings); filter by employee, company, tax, exemptible, jurisdiction |
| PATCH | Update employee tax elections (incl. exemptions) |
Filings | ||
| GET | List tax filings |
| GET | Get a specific tax filing |
| POST | Add blockers to a filing |
| POST | Remove blockers from a filing |
Employee Tax Statements | ||
| GET | List employee tax statements |
| GET | Get a specific tax statement |
Tax Packages | ||
| POST | Request a tax package |
| GET | Get a specific tax package |
Taxes (reference data) | ||
| GET | List tax objects (payroll levies); filter by jurisdiction, payer, supported/remittable, effective status |
| GET | Get a specific tax object |
Agencies (2 tools)
The counterparties Check files and remits to (IRS, state revenue departments). Global read-only reference data.
Tool | Method | Description |
| GET | List agencies; filter by jurisdiction or label |
| GET | Get a specific agency |
Webhooks (7 tools)
Tool | Method | Description |
| GET | List webhook configurations |
| GET | Get a specific webhook configuration |
| POST | Create a webhook configuration |
| PATCH | Update a webhook configuration |
| DELETE | Delete a webhook configuration |
| POST | Send a test ping |
| GET | List webhook deliveries with status + attempts |
| GET | Get a webhook delivery |
| POST | Re-enqueue a webhook delivery (sandbox only) |
Platform (27 tools)
Notifications, communications, usage, integrations, accounting, company groups, addresses, setups, and requirements.
Tool | Method | Description |
Notifications | ||
| GET | List notifications |
| GET | Get a specific notification |
Communications | ||
| GET | List communications |
| GET | Get a specific communication |
| POST | Create a communication |
Usage | ||
| GET | List usage summaries |
| GET | List usage records |
Integrations | ||
| GET | List integration partners |
| GET | Get a specific integration partner |
| POST | Authorize an integration partner |
| GET | List integration permissions |
| GET | Get a specific permission |
| GET | List integration accesses |
Accounting | ||
| GET | List accounting accounts for a company |
| POST | Refresh accounting accounts |
| GET | Get accounting mappings |
| PATCH | Update accounting mappings |
| POST | Toggle accounting mappings |
| POST | Trigger an accounting sync |
| GET | List accounting sync attempts |
Company Groups | ||
| GET | List company groups |
Addresses | ||
| POST | Validate an address |
Setups | ||
| GET | List setups |
| GET | Get a specific setup |
Requirements | ||
| GET | List requirements |
| GET | Get a specific requirement |
Reports | ||
| GET | Get applied-for IDs report |
Embedded Components (35 tools)
Generate embeddable UI component URLs via POST /{entity_type}/{entity_id}/components/{component_type}. All tools accept an entity_id and optional data configuration.
Company components (25):
create_company_previous_provider_access_component, create_company_accounting_integration_component, create_company_authorization_documents_component, create_company_business_details_component, create_company_checklist_component, create_company_company_reports_component, create_company_connect_bank_account_component, create_company_details_component, create_company_early_enrollment_component, create_company_employee_setup_component, create_company_filing_authorization_component, create_company_filing_preview_component, create_company_full_service_setup_submission_component, create_company_integrations_component, create_company_integrations_authorize_component, create_company_pay_history_component, create_company_payment_setup_component, create_company_progress_tracker_component, create_company_run_payroll_component, create_company_signatory_agreements_component, create_company_tax_documents_component, create_company_tax_setup_component, create_company_team_setup_component, create_company_terms_of_service_component, create_company_verification_documents_component
Employee components (9):
create_employee_benefits_component, create_employee_payment_setup_component, create_employee_paystubs_component, create_employee_post_tax_deductions_component, create_employee_profile_component, create_employee_ssn_setup_component, create_employee_tax_documents_component, create_employee_tax_setup_component, create_employee_withholdings_setup_component
Contractor components (1):
create_contractor_tax_documents_component
Development
git clone https://github.com/check-technologies/mcp-server-check.git
cd mcp-server-check
uv sync --group dev
uv run pytest # 311 testsPre-commit hooks
This repo ships a pre-commit config that runs ruff check
and ruff format (the same checks as CI) before each commit. Enable it once after
cloning:
uv run pre-commit installTo run the hooks manually against all files: uv run pre-commit run --all-files.
Available Tools
3 toolslist_toolsetsList ToolsetsARead-onlyIdempotent
List all available API toolsets with descriptions.
Returns a summary of each toolset including its name, description, tool count, and example tools. Use this to understand what's available before searching for specific tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint, destructiveHint), description adds what the return summary includes (name, description, tool count, example tools). No contradictions.
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, front-loaded with purpose, minimal and efficient. No extraneous content.
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 output schema exists, description covers return fields, usage context, and differentiation. Complete for a simple list tool with no parameters.
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 coverage is 100% (no parameters). Baseline 3 applies; description adds no parameter info but none needed.
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?
Description states 'List all available API toolsets with descriptions' – a clear verb+resource. It distinguishes from sibling search_tools by suggesting to use this before searching.
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 says 'Use this to understand what's available before searching for specific tools' – gives concrete context and implies when to use vs search_tools. Could be more specific about not using for running tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_toolRun ToolADestructive
Execute an API tool by name with the given arguments.
Use search_tools first to find the tool name and its parameter schema.
tool_name: The exact tool name (e.g. "list_companies", "get_employee"). arguments: Tool arguments as a JSON string or dict (e.g. '{"company_id": "com_xxx"}' or {"company_id": "com_xxx"}). confirm: Set to true to confirm execution of a destructive tool (approve, delete, simulate, refund, cancel). Required when CHECK_CONFIRM_DESTRUCTIVE is enabled and the tool is destructive.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| arguments | No | ||
| tool_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, and the description adds crucial context by detailing the 'confirm' parameter's role in approving destructive actions. This goes beyond the annotation by explaining the execution workflow, making behavioral expectations transparent.
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 two short paragraphs and a bullet-style list for parameters. It is front-loaded with the core purpose and quickly provides actionable details without extraneous text.
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's generic execution role and the presence of an output schema (not shown), the description covers all necessary aspects: how to find the tool, how to pass arguments, and when to confirm destructive actions. It is complete for an agent to use correctly.
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?
Despite 0% schema description coverage, the description adds significant meaning: it specifies that 'tool_name' must be an exact name, explains 'arguments' as a JSON string or dict, and clarifies the 'confirm' parameter's purpose. This compensates for the schema's lack of explanation.
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 'Execute an API tool by name with the given arguments.' This is a specific verb and resource, and it is distinctly different from the sibling tools 'list_toolsets' and 'search_tools', which are for discovery, not execution.
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 advises to 'Use search_tools first to find the tool name and its parameter schema,' providing clear context for proper use. It also explains when the 'confirm' parameter is required, which is valuable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsSearch ToolsARead-onlyIdempotent
Search for available API tools by keyword.
Returns matching tools with their full parameter schemas, ready for use with run_tool. Call with an empty query to see all available toolsets. Supports synonym matching (e.g. "pay employees" finds payroll tools).
query: Search keywords (e.g. "list companies", "create employee", "payroll"). toolset: Optional toolset name to restrict search (e.g. "companies", "employees"). limit: Maximum number of results (default 20).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| toolset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, idempotent, non-destructive), description adds valuable behavioral traits: synonym matching and that results include full parameter schemas. No contradiction with 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?
Concise and well-structured: starts with purpose, then describes return value and usage, followed by parameter details. Every sentence adds unique value without 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?
Complete for a search tool with 3 parameters and an output schema. Description covers all relevant aspects: behavior, parameters, return value, and usage context. Output schema handles return details.
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 coverage, description fully explains all three parameters: query, toolset (optional restriction), limit (default 20). Provides examples and defaults, adding necessary meaning beyond schema.
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's purpose: search for API tools by keyword. It also explains that it returns tools with full parameter schemas for use with run_tool, distinct from siblings list_toolsets and run_tool.
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?
Provides clear usage guidance: call with empty query to see all toolsets, and mentions synonym matching. However, does not explicitly state when not to use or list alternatives, though sibling tools provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: list_toolsets provides an overview, search_tools finds specific tools, and run_tool executes them. No overlap or ambiguity.
All tools use a consistent verb_noun pattern in snake_case (list_toolsets, search_tools, run_tool), making the convention predictable.
With 3 tools, the server is well-scoped for its meta-purpose of discovering and executing API tools. Each tool is essential and the count feels appropriate.
The set covers listing, searching, and executing tools. A minor gap is the lack of a dedicated tool to get details for a single toolset, but search_tools can handle that. Overall, it's complete for the stated purpose.
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
MCP server for Modern Treasury — payment orders, transactions, counterparties and ledgers.
MCP server for Codat — companies, connections, invoices, bills and financial statements.
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that provides access to Paylocity API endpoints, allowing retrieval of employee data, earnings, company codes, local taxes, and pay statements.6
- FlicenseAqualityDmaintenanceAn MCP server that wraps the TimePRO API, enabling AI assistants to automatically create, view, and manage timesheets for authenticated users. It provides tools for searching clients and projects, retrieving configuration defaults, and performing full CRUD operations on timesheet entries.10
- AlicenseAqualityCmaintenanceMCP server for PrismHR, enabling AI agents to automate payroll, benefits, compliance, and billing tasks with verified-schema tools and scope-gated consent.183MIT
- FlicenseNot gradedqualityDmaintenanceThis MCP server simplifies interaction with the ConnectWise Manage API through API discovery, execution, and a fast memory system for efficient workflows.20
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/check-technologies/mcp-server-check'
If you have feedback or need assistance with the MCP directory API, please join our Discord server