arsenkin-mcp
This MCP server lets an AI assistant run Arsenkin SEO batch workflows end-to-end: plan and estimate requests, get approval, submit paid jobs, monitor them, and turn saved results into tables or exports.
Research keywords: keyword frequency, related phrases, demand trends, search suggestions, and clustering.
Inspect search visibility: SERP, position, indexation, and relevant-URL checks.
List supported profiles: discover available profiles, payload fields, and example SEO requests with
arsenkin_profile_catalog.Estimate costs without live calls: validate a single payload (
arsenkin_estimate) or plan/coalesce a batch (arsenkin_batch_estimate).Check account/API status: verify connectivity without submitting paid tasks (
arsenkin_status).Explain local worker state: heartbeat, queue, and configured budget via
arsenkin_local_diagnostics.Look up request hashes: check server-ledger hashes without exposing payload data.
Prepare approvals: create bounded approval for single (
arsenkin_prepare) or batch (arsenkin_batch_prepare) requests; may be accepted server-side by trusted policy.Submit approved jobs: queue paid requests (
arsenkin_submit,arsenkin_batch_submit) with idempotency keys; worker coalesces and polls centrally.Track jobs: get durable status (
arsenkin_task_status) or request cancellation (arsenkin_cancel).Read results: retrieve saved results (
arsenkin_get_result), export as JSONL/CSV with provenance (arsenkin_export_result), or build SERP/cluster tables (arsenkin_result_table).
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., "@arsenkin-mcpSubmit a backlink audit job for example.com and export results as CSV."
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.
🇬🇧 English · 🇷🇺 Русский
Arsenkin MCP
Run your SEO checks in batches from your AI assistant.
Collect SERPs, check keyword frequency, cluster queries or inspect indexation through Arsenkin Tools. The MCP server gives your assistant a workflow for estimating requests, getting approval, tracking jobs and working with saved results.
Quick start · Connect your assistant · Issues
Try asking your assistant:
Prepare a frequency-check batch for my keyword list. Show the request plan and estimated cost before submitting anything.
What you can do
Your task | What the MCP server provides |
Research keywords | Keyword frequency, related phrases, demand trends, search suggestions and clustering. |
Inspect search visibility | SERP, position, indexation and relevant-URL checks. |
Manage a batch | Discover profiles, estimate, approve, submit, diagnose the worker and export saved results. |
Read the result | URL/host occurrence tables and cluster records with source pointers, in JSON or CSV. |
Saved-result examples and worker help show how to turn a completed SEO task into a useful table.
Related MCP server: DataForSEO MCP Server
Quick start
Prefer a ready package? Install the release and generate your client configuration. No source checkout is required.
Install Python 3.12–3.14 and uv. Clone with Git or download the ZIP. With a ZIP, open the extracted directory and skip the first two commands.
Have your Arsenkin API token ready for the configuration wizard. Start with a local request estimate, as shown below; enable paid execution after reviewing the access and limits section.
git clone https://github.com/zai-one/arsenkin-mcp.git
cd arsenkin-mcp
uv sync --frozen --extra standalone
uv run --frozen --extra standalone python scripts/configure.py
uv run --frozen --extra standalone arsenkin-mcp --config mcp.local.json --check-configThe wizard creates a local configuration and stores secrets in private files. It refuses to overwrite an existing setup. --check-config validates local settings; use arsenkin_status separately to check account connectivity.
Connect your assistant
Add this configuration to an MCP client that uses mcpServers, such as Claude Desktop or Cursor. Replace /ABSOLUTE/PATH/ with your absolute path; Windows JSON paths can use forward slashes, such as D:/Tools/.
{
"mcpServers": {
"arsenkin": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/arsenkin-mcp",
"run",
"--frozen",
"--extra",
"standalone",
"arsenkin-mcp",
"--config",
"/ABSOLUTE/PATH/arsenkin-mcp/mcp.local.json"
]
}
}
}The client starts the MCP server for you. Refresh its tool list, then make your first request. For clients with a different config format, reuse the same command and args; uv must be available to the client process.
First request
Prepare an estimate for a frequency-check request with one phrase. Ask me for the region and frequency type; do not submit a paid job.
An estimate validates the request locally and shows the server cost estimate without calling Arsenkin. Submitting a paid job is a separate step. Cost estimates use configured policy units, not a guaranteed invoice amount or a ruble quote.
If tools do not appear, check the absolute path, whether the client can find uv, and the --check-config result. For access errors, check account credentials and permissions. Installation and troubleshooting.
Access and limits
For execution, configure paid-task limits and approval, then run the worker with the same config and SQLite state. Exported values keep their JSON paths; specialised SEO tables are not generated automatically. Cancelling a job does not guarantee a refund for work already submitted.
Authenticated HTTP is available for a server deployment. See HTTP setup, configuration and permissions and Python package integration.
uv sync --frozen --all-groups --extra standalone
uv run --frozen --extra standalone python scripts/verify.py
uv run --frozen --extra standalone python scripts/verify_install.pyTests use synthetic fixtures. A passing test run does not establish live provider connectivity.
Built by ZAI.ONE
ZAI.ONE is a digital agency working on websites, SEO, advertising and analytics. We also build tools that connect AI assistants to everyday work. Talk to us on Telegram about setup, automation or an integration for your team.
Use and feedback
You may install and use this project for your own accounts under LicenseRef-ZAI-ONE. This is not an open-source license. Third-party notices remain in NOTICE. If it helps, give the repository a ⭐. Missing something or found a bug? Open an issue. I'm working on this project; accepted improvements are implemented here. Support is not guaranteed.
Available Tools
15 toolsarsenkin_batch_estimateB
Plan, coalesce and price a multi-request batch without a live call.
| Name | Required | Description | Default |
|---|---|---|---|
| requests | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It usefully discloses that the tool works 'without a live call,' suggesting a non-executing estimation behavior, but it does not clarify side effects, prerequisites, or validation behavior, and the term 'coalesce' is vague.
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 filler, efficiently conveying the core function. It loses one point because 'coalesce' is jargon that is not explained, slightly reducing clarity without adding structural benefit.
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 only one parameter and an output schema, the tool's input format is not adequately specified: 'requests' is completely undocumented in both the schema and description. An agent could not confidently construct a valid request without additional context, so the description is not self-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?
Schema description coverage is 0%, so the description must compensate by explaining the 'requests' parameter. It only implies that the parameter is a multi-request batch array; it does not specify the required shape of each request object, what fields are expected, or how requests are 'coalesced.'
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 states a clear operation ('Plan, coalesce and price') applied to a specific resource ('a multi-request batch'), which conveys the tool's purpose. It distinguishes itself from the singular 'arsenkin_estimate' sibling by the explicit 'multi-request batch' scope, though it does not name the alternative directly.
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 phrase 'multi-request batch' clearly signals this is the tool to use when estimating multiple requests, and 'without a live call' indicates it is for planning/pricing rather than submission. However, it stops short of explicitly naming alternatives or stating when not to use sibling tools such as 'arsenkin_batch_submit' or 'arsenkin_estimate'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_batch_prepareC
Create one bounded batch approval; trusted policy may accept it server-side.
| Name | Required | Description | Default |
|---|---|---|---|
| requests | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose an important behavior: 'trusted policy may accept it server-side', suggesting server-side auto-acceptance under certain conditions. However, it does not clarify side effects, required privileges, or what happens after the approval is created.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. It front-loads the core action and includes a notable behavioral caveat. It is concise, though slightly under-specified in terminology like 'bounded'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex array parameter with additionalProperties allowed, yet the description leaves the request object semantics entirely undefined. An agent would have to infer what each item in 'requests' should contain. The presence of an output schema helps with return values, but invocation correctness is compromised by missing parameter context.
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 provides no description for the 'requests' parameter, and the description does not compensate. While the name 'requests' and the word 'batch' imply an array of approval requests, the description gives no information about required fields, allowed object shapes, or constraints. At 0% schema coverage, this is a significant gap.
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 uses a specific verb and resource: 'Create one bounded batch approval'. It clearly distinguishes this as a batch operation, which separates it from singular tools like arsenkin_prepare. The meaning of 'bounded' is somewhat jargon-like, but the overall intent is understandable.
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 does not state when to use this tool versus alternatives like arsenkin_prepare, arsenkin_batch_submit, or arsenkin_submit. The phrase 'trusted policy may accept it server-side' hints at a possibility but provides no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_batch_submitC
Queue one approved batch job; worker coalesces and polls centrally.
| Name | Required | Description | Default |
|---|---|---|---|
| requests | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that the tool queues rather than immediately executes, and that a worker handles coalescing and polling, which is useful. However, it does not mention side effects, idempotency behavior, failure modes, or what the output represents.
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 filler words. It conveys the core action and a notable behavioral trait in a compact form, though it is short enough that some useful context is omitted.
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, the description does not clarify what a successful submission returns or how the queue workflow progresses. Three required parameters are undocumented, and there is no guidance on idempotency, approval validation, or error handling, leaving an agent under-equipped to call this tool 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?
Schema description coverage is 0%, so the description needed to compensate, but it does not explain any of the three required parameters. The phrase 'approved batch job' loosely maps to approval_id, and the name suggests idempotency_key's purpose, but the description adds no concrete parameter-level meaning beyond what the bare property names imply.
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 states a specific verb ('Queue') and resource ('one approved batch job'), and adds a distinguishing behavioral note about central worker coalescing and polling. However, it does not clearly differentiate from the sibling 'submit' tools or explain what 'approved' means in this workflow.
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?
There is no explicit guidance on when to use this tool versus alternatives like arsenkin_submit, arsenkin_batch_prepare, or arsenkin_get_result. The phrase 'approved batch job' implies a prerequisite, but the description never states when to choose this over sibling tools or what conditions must be met.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_cancelB
Request cancellation of the principal's queued or running Arsenkin job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining side effects. It only says 'request cancellation' and scopes to queued/running jobs, but does not disclose whether cancellation is asynchronous, idempotent, or what happens if the job is already completed.
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, focused sentence with no fluff, front-loading the action and clearly identifying the target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has an output schema, but the lack of annotations and parameter details leaves gaps around cancellation semantics and edge cases, such as what occurs if the job is not in a cancellable state.
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 provides no description for job_id, and the description does not explain where to find it, its format, or how it relates to the 'principal's job'. Since schema coverage is 0%, the description should compensate but 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 states a clear verb ('Request cancellation') and a specific resource ('principal's queued or running Arsenkin job'), making it distinct from sibling tools like submit, status, or get_result.
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 use when a job is queued or running and cancellation is desired, but it does not explicitly state when not to use it or mention alternatives such as checking status first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_estimateB
Validate an Arsenkin payload and estimate cost without a live call.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | ||
| profile | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The phrase 'without a live call' is a meaningful behavioral trait, indicating the tool is non-mutating and does not execute a real submission. But it does not explain validation semantics, error behavior, or authorization needs.
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 filler. It efficiently communicates the action, resource, and key constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too terse relative to the 11 sibling tools and the complete lack of parameter semantics. An agent cannot determine whether this tool handles batch payloads, what 'profile' means, or when to prefer this over arsenkin_batch_estimate. The output schema exists, but that does not compensate for missing usage and parameter context.
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 the schema's lack of enrichment. It only names 'payload' without explaining its structure, and it never mentions the required 'profile' parameter or the accepted profile values. This is insufficient parameter guidance.
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 states a clear verb and resource: 'Validate an Arsenkin payload and estimate cost'. It also adds the key qualifier 'without a live call', which distinguishes it from submission tools. However, it does not explicitly differentiate from the sibling arsenkin_batch_estimate, so it stops short of a 5.
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 phrase 'without a live call' implies this is a preflight or dry-run estimate, giving some context for when to use it. However, it gives no explicit when-not-to-use guidance and does not mention alternatives like arsenkin_batch_estimate or arsenkin_prepare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_export_resultA
Export a saved owned job as bounded JSONL/CSV with JSON-pointer provenance; no provider calls.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | jsonl | |
| job_id | Yes | ||
| max_rows | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the transparency burden. It adds useful behavioral facts: no provider calls, bounded output, and eligibility limited to saved owned jobs. However, it never explicitly says the operation is read-only/side-effect-free or what happens when the job is not saved/owned, leaving some safety behavior unstated.
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 dense sentence with no filler. The key action is front-loaded, and every clause adds discriminative information.
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?
An output schema exists, so return structure is covered. The description supplies the key operational context: eligible jobs, output formats, provenance behavior, and the no-provider-call guarantee. The main omissions are explicit parameter mapping and a named comparison to get_result, which are relatively minor for this simple export 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 prose has to compensate. It indirectly maps job_id (the job to export), format ('JSONL/CSV'), and max_rows ('bounded'), but it does not explicitly explain accepted format values or how max_rows limits the export. The parameter names are self-explanatory, but the description adds only partial detail.
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 names a specific action ('Export'), a specific resource ('a saved owned job'), and concrete output characteristics ('bounded JSONL/CSV with JSON-pointer provenance'). It also distinguishes the tool from siblings by noting it makes 'no provider calls', so an agent can separate it from get_result or submit.
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?
It gives clear context: only saved owned jobs are eligible and the operation is offline ('no provider calls'), which implies it should not be used for live provider results. It does not explicitly name a sibling alternative or state when not to use it, so it misses a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_get_resultC
Return the durable result for the principal's Arsenkin job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does not disclose whether the call is read-only, whether it blocks until the result is ready, or what happens when the result is not yet available.
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 sentence with no filler, but the awkward 'principal's' phrase and missing context reduce clarity.
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?
Even with an output schema present, the description omits the lifecycle context (when the result exists, whether to poll status first, and how this differs from export_result).
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 sole parameter job_id is not explained beyond the phrase 'Arsenkin job'; the description does not define where job_id comes from or how it relates to submit/batch_submit responses.
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?
States a clear action ('Return') and resource ('durable result for the principal's Arsenkin job'), but leaves the meaning of 'principal's' and 'durable result' ambiguous, and does not distinguish itself from the sibling 'arsenkin_export_result'.
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 guidance on when to call this versus siblings like arsenkin_status, arsenkin_task_status, or arsenkin_export_result; no indication that it should be called after job completion or submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_local_diagnosticsA
Explain local worker heartbeat, your queue and configured budget; no provider calls.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adds a meaningful behavioral constraint by stating 'no provider calls,' which clarifies that the tool operates locally. The verb 'Explain' also suggests a read-only nature, though side effects and safety are not explicitly spelled out.
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 efficient sentence that front-loads the verb and resources, then appends the key behavioral qualifier. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter schema and presence of an output schema, the description covers the essential purpose and behavioral boundary. It could be more explicit about when to choose this tool over siblings, but for a simple local diagnostics tool the information is largely 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 tool has zero parameters, so the baseline is 4. The description adds context about what the tool explains (heartbeat, queue, budget), but there is no parameter-specific information 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?
The description uses the specific verb 'Explain' and names concrete resources: local worker heartbeat, your queue, and configured budget. It also distinguishes itself from sibling tools by explicitly stating 'no provider calls,' making its scope immediately clear.
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 local diagnostics without provider calls, but it does not explicitly state when to use this tool versus alternatives or mention any sibling tool by name. The 'no provider calls' note provides a behavioral boundary but not a direct usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_prepareC
Create a bounded approval; trusted policy may return typed server acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | ||
| profile | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates that the tool creates something and may return a typed server acceptance, but it does not disclose whether this is a state-changing approval, whether it can expire or be revoked, whether it must be followed by submit, or what side effects occur. The phrase 'bounded approval' is too vague to provide real transparency.
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 short and opens with an action verb, which is good for front-loading. However, its few words are spent on cryptic terminology ('bounded approval', 'trusted policy') rather than useful explanatory content, so conciseness comes at the expense of clarity.
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 no annotations, no parameter semantics, and an open-ended payload, the description is not complete enough for an agent to safely invoke the tool. The presence of an output schema helps explain return values, but it does not compensate for the missing context about how to fill the payload, what role this plays in the prepare/submit workflow, or what behavior to expect after creation.
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%, and the description provides no meaning for the two parameters, 'profile' and 'payload'. The payload is a free-form object with additionalProperties allowed, yet the description gives zero guidance on what keys or values it should contain. This is a critical gap because the agent cannot construct a correct request from the given information.
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 contains a specific verb and resource in 'Create a bounded approval', which is more than a tautology. However, 'bounded approval' is jargon and the added clause about 'trusted policy may return typed server acceptance' obscures rather than clarifies what the tool does. It does not distinguish this from siblings like arsenkin_batch_prepare or arsenkin_submit.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention the relationship to other workflow steps such as batch_prepare, submit, cancel, or status checks, leaving the agent to infer the tool's position in the process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_profile_catalogA
List supported profiles, payload fields and example SEO requests; no provider calls.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states 'no provider calls', signaling a safe, side-effect-free catalog operation. This is meaningful beyond the tool name and helps an agent understand it will not trigger external actions or require provider credentials.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that leads with the action and resource, then adds the key safety qualifier 'no provider calls'. Every word contributes value, and there is no redundant filler.
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 no parameters and an output schema exists, the description covers the main essentials: what the catalog contains and that it is non-invasive. Slightly more context about when to use it in the broader workflow, such as before prepare or submit, would improve completeness, but it is not essential for correct invocation.
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 tool has zero parameters and the schema is effectively empty, so there are no parameter semantics to explain. The description focuses on what the tool returns rather than inputs, which is appropriate for a no-argument catalog 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 uses a specific verb, 'List', and names the exact resources: 'supported profiles, payload fields and example SEO requests'. The 'no provider calls' clause clearly distinguishes this catalog tool from the operational sibling tools like estimate, submit, and cancel.
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 this is an introspection/reference tool to consult before making provider calls, but it does not explicitly say when to use it over siblings or mention any exclusion conditions. An agent has to infer that it should be used for discovery before prepare or submit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_request_hash_lookupA
Look up exact server-ledger hashes without exposing job or provider payload data.
| Name | Required | Description | Default |
|---|---|---|---|
| request_hashes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds a valuable non-obvious behavioral guarantee: the lookup does not expose job or provider payload data. 'Look up' also implies a read-only operation. It does not discuss error behavior or rate limits, but for a simple lookup tool the key behavioral trait is disclosed.
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 filler. Every word contributes: the verb, the resource, the exactness, and the crucial privacy guarantee.
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 one-parameter lookup tool with an output schema present, the description is largely sufficient. It states the object of lookup, the privacy behavior, and implies a read-only operation. The main gap is parameter-level detail, but given the simplicity of the input schema and the availability of an output schema, the description is close to complete.
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, but it provides no details about request_hashes beyond the parameter name. It does not explain where these hashes come from, what format they should be in, whether duplicates are handled, or if there is a maximum batch size. The phrase 'server-ledger hashes' weakly links the parameter to the tool's purpose, but no real semantic guidance is added.
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 states a specific verb and resource: 'Look up exact server-ledger hashes.' It further differentiates itself from payload-returning siblings by explicitly saying it does so 'without exposing job or provider payload data,' which is a clear distinction from tools like get_result or export_result.
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 appropriate when exact ledger hashes are needed and payload data should not be exposed, but it does not explicitly mention alternatives or state when not to use the tool. Usage context is present only by implication, not by direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_result_tableA
Create SERP URL/host frequency or cluster tables from a selected saved-result JSON pointer.
serp_urls/serp_hosts select repeatUrl/repeatHost; clusters selects cluster records. Completeness covers only this selected view, never the whole provider task. No new paid calls.
| Name | Required | Description | Default |
|---|---|---|---|
| view | Yes | ||
| format | No | json | |
| job_id | Yes | ||
| max_rows | No | ||
| result_pointer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses meaningful behavioral traits: no new paid calls, completeness scoped only to the selected view, and selection behavior for repeatUrl/repeatHost versus cluster records. It does not mention side effects or persistence, but the disclosed traits go well beyond the schema.
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?
Three concise sentences lead with the main purpose, then provide the view-to-record mapping and key caveats. There is no filler, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, view mapping, scope limitations, and cost behavior, and an output schema exists. However, with no annotations and 0% parameter coverage, it still omits format values, max_rows behavior, and result_pointer syntax, leaving an agent to guess on several invocation 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?
Schema description coverage is 0%, so the description must compensate. It explains the view parameter's semantics and references result_pointer as a saved-result JSON pointer. However, job_id, format, and max_rows are left entirely to their names and defaults, with no value guidance or syntax details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates SERP URL/host frequency or cluster tables from a saved-result JSON pointer, and explains which view selects which record type. It differentiates itself from raw result retrieval or export through the 'table' and 'selected view' framing, though it does not explicitly name sibling tools.
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 gives actionable context: it operates on a selected saved-result view, completeness is limited to that view rather than the whole provider task, and no new paid calls are made. It does not explicitly say when to prefer this over arsenkin_get_result or arsenkin_export_result, so the guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_statusA
Check Arsenkin account/API status; this does not submit a paid task.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the most important behavioral trait: this call is non-submitting and does not incur a paid task. It does not mention authentication or rate limits, but for a zero-parameter status check the main risk is addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the verb and object front-loaded, followed by a valuable clarification. Every word earns its place and there is no filler.
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 zero-parameter status tool with an output schema, the description is largely complete: it states what is checked and explicitly rules out paid submission. It could be slightly more explicit about task-level status being handled by arsenkin_task_status, but the 'account/API status' wording already covers that distinction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing for the description to explain about parameters. The baseline for zero-parameter tools is 4, and the description adds no unnecessary parameter-related detail.
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 uses the specific verb 'Check' and the resource 'Arsenkin account/API status,' which is clear and distinct. It also explicitly says it does not submit a paid task, distinguishing it from the submit/batch_submit siblings and, by using 'account/API,' from arsenkin_task_status.
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 clearly states when to use the tool (to check account/API status) and gives an important exclusion: it does not submit a paid task. It does not explicitly name alternative sibling tools such as arsenkin_task_status, but the intended context is still clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_submitC
Queue an approved paid Arsenkin request; never blocks on provider polling.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | ||
| profile | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description must carry the full burden, but it only reveals one behavior: it never blocks on provider polling. It does not disclose that this action queues a paid request (potential financial side effect), whether it is idempotent, what happens on duplicate idempotency keys, or what the return value means. These are material details for an agent invoking a money-related operation.
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 phrase is short and the main purpose is front-loaded, which would be good for a simple turn. But for a tool with four required parameters and an object payload, this is under-specification rather than conciseness. It lacks any structured breakdown of the parameters or their relationships.
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 high complexity (4 required params, nested payload, no annotations, no output schema explanation), the one-line description leaves far too much to guess. The output schema may list what is returned, but it cannot explain the approval contents, idempotency semantics, or usage context. The definition is incomplete for an agent to invocate this tool 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?
Schema description coverage is 0% and the description adds zero information about the four required parameters. 'Payload', 'profile', 'approval_id', and 'idempotency_key' are completely unaddressed. Since the schema only provides type names and no descriptions, the agent has no way to know what to pass in, making this dimension a serious failure.
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 uses a specific verb 'Queue' and a clear resource 'approved paid Arsenkin request', which makes the primary action understandable. It also includes a behavioral nuance about non-blocking provider polling, and the 'paid/approved' qualifiers help distinguish it from prepare or estimate tools. However, it does not explicitly name any sibling tool for differentiation.
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?
There is no explicit guidance on when to use this tool versus alternatives. The mention of 'approved paid' implies a prerequisite, but the description never says to use arsenkin_prepare or arsenkin_estimate first, nor warns against using this for batch operations (arsenkin_batch_submit). The agent is left to infer the conditions from the name and one vague qualifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsenkin_task_statusB
Return durable status for the principal's Arsenkin job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. The word 'durable' usefully indicates the status is persisted rather than transient, and 'Return' implies a read-only operation. However, it does not disclose behavior such as what states are possible, whether the job may still be running, or whether an unknown job_id produces an error.
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 that wastes no words. It immediately states the action and object, which is ideal for a simple one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and includes an output schema, so return-value documentation is not required. The basic invocation is inferable: provide a job_id. Still, the description leaves ambiguous how this differs from the similarly named 'arsenkin_status' and does not clarify the meaning or lifecycle of 'durable status', so context is only partially complete.
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?
There is only one parameter, job_id, and its name is reasonably self-explanatory, but the schema has 0% description coverage and the tool description does not explain how job_id is obtained, its format, or how it relates to other Arsenkin tools. Low schema coverage requires compensation, and the description provides none.
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 states a specific action ('Return durable status') on a specific resource ('the principal's Arsenkin job'), so the core purpose is clear. However, with sibling 'arsenkin_status' also present, the description does not explicitly distinguish what makes this task status tool different from that status 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?
The description gives no guidance on when to use this tool versus alternatives such as 'arsenkin_status' or 'arsenkin_get_result'. There are no exclusions, prerequisites, or context about when durable status is the appropriate choice.
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.
3 tool updates
v0.3.0- Added
arsenkin_local_diagnostics - Added
arsenkin_profile_catalog - Added
arsenkin_result_table
12 tool updates
v0.2.0- First observed
arsenkin_batch_estimate - First observed
arsenkin_batch_prepare - First observed
arsenkin_batch_submit - First observed
arsenkin_cancel - First observed
arsenkin_estimate - First observed
arsenkin_export_result - First observed
arsenkin_get_result - First observed
arsenkin_prepare - First observed
arsenkin_request_hash_lookup - First observed
arsenkin_status - First observed
arsenkin_submit - First observed
arsenkin_task_status
TDQS
Scored across 15 tools
Most tools target a distinct lifecycle stage or result format, and descriptions clarify differences between account status vs task status and get_result vs export_result vs result_table. A few result/status tools could still be mistaken without close reading, but overall boundaries are clear.
All tools share the arsenkin_ snake_case prefix and batch_ variants are predictable, but the suffix style mixes bare verbs (prepare, submit, cancel), nouns (status, result_table), and verb_noun forms (get_result, export_result). This makes the set readable but not fully uniform.
Fifteen tools is at the upper edge of a well-scoped set, but the single/batch pairs and separate result/export/table tools justify most entries. It feels slightly heavy but not bloated for the apparent workflow.
The core paid-task lifecycle is well covered end-to-end: estimate, prepare, submit, status, result, export, and cancel, for both single and batch requests. Minor gaps exist, such as no explicit way to list saved-result pointers or enumerate prior jobs, but agents can complete primary workflows without dead ends.
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
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
Open-source SEO manager for coding agents: keyword research, content PRs, rank + Search Console.
Related MCP Servers
- AlicenseDqualityDmaintenanceEnables LLMs to interact with DataForSEO and other SEO APIs through natural language, allowing for keyword research, SERP analysis, backlink analysis, and local SEO tasks.10013,88082MIT
- AlicenseCqualityNot gradedmaintenanceEnables AI assistants to interact with DataForSEO APIs and obtain SEO data including SERP results, keyword research, on-page metrics, backlink analysis, and domain analytics through a standardized interface.7613,880-
- FlicenseNot gradedqualityDmaintenanceEnables professional SEO/SEM research with geolocalized keyword discovery, competitor analysis, and SERP ranking insights using DataForSEO API.-
- FlicenseBqualityCmaintenanceEnables SEO analysis and data retrieval through DataForSEO API, including keyword research, backlinks, competitor analysis, and on-page audits.24-
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/zai-one/arsenkin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server