SORACOM Data Reader MCP
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose with no overlap. get_harvest_data retrieves data by SIM IMSI, get_harvest_data_by_resource retrieves data by resource type/ID, get_harvest_file_download_url gets download URLs, get_harvest_file_info gets storage usage, and list_harvest_files lists files/directories. The descriptions make it easy to differentiate between data retrieval methods and file management operations.
Naming Consistency5/5All tools follow a consistent verb_noun pattern with 'get_' or 'list_' prefixes followed by descriptive nouns. The naming is perfectly uniform across all five tools, making them predictable and easy to understand at a glance.
Tool Count5/5Five tools is an ideal number for this server's purpose of reading SORACOM Harvest data and files. Each tool serves a specific, necessary function without redundancy, covering both data retrieval (by SIM and resource) and file management operations in a well-scoped manner.
Completeness4/5The toolset provides comprehensive read-only coverage for Harvest data and files, including multiple query methods, file listing, download URLs, and storage info. The only minor gap is the lack of write/update operations, but as a 'Data Reader' server, this aligns with its stated purpose, and agents can work effectively within this read-only scope.
Average 3.3/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
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 states the tool returns a 'ダウンロード用URL(リダイレクトURL)' (download URL/redirect URL), which hints at a read-only operation that might involve redirection. However, it lacks details on authentication needs, rate limits, error handling, or whether the URL is ephemeral. For a tool with no annotations, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with a clear purpose statement followed by separate 'Args' and 'Returns' sections. Each sentence adds value: the purpose, parameter list, and return value. There's no redundant information, and it's front-loaded with the main action. Minor improvement could include more detail in parameter explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters with 0% schema coverage and an output schema (implied by 'Returns'), the description is moderately complete. It covers the purpose, parameters, and return value, but lacks usage guidelines, behavioral details (e.g., auth, errors), and deeper parameter semantics. The output schema likely defines the URL structure, so the description doesn't need to elaborate on returns, but overall context is incomplete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an 'Args' section that lists parameters ('scope' and 'path') with brief Japanese explanations, adding meaning beyond the input schema (which has 0% description coverage). However, the explanations are minimal ('スコープ' for scope, 'ファイルパス' for path) and don't detail format, examples, or constraints (e.g., scope values like 'private' or 'operators/{operator_id}'). With low schema coverage, this partially compensates but remains vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Harvest Filesのファイルダウンロード用URLを取得します' (Get download URL for Harvest Files). It specifies the verb ('取得します' - get/obtain) and resource ('ダウンロード用URL' - download URL), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_harvest_file_info' or 'list_harvest_files', which likely provide metadata rather than download URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_harvest_file_info' (which might provide file details) or 'list_harvest_files' (which might list available files), nor does it specify prerequisites or contexts for usage. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions pagination ('ページング用キー') and returns a list, but doesn't disclose important behavioral traits: whether this is a read-only operation, if it requires authentication, rate limits, error conditions, or what the list structure looks like. For a tool with 4 parameters and no annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and uses bullet points effectively. It's appropriately sized - every sentence adds value. The main purpose statement is front-loaded, followed by parameter explanations. No wasted words, though the Japanese-only text might limit accessibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, 0% schema coverage, no annotations, but an output schema exists, the description is moderately complete. It explains what the tool does and what parameters mean, but lacks behavioral context (permissions, errors, etc.) and usage guidance. The output schema handles return values, so that burden is lifted. For a list operation, this is minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does 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 provides Japanese descriptions for each parameter (scope, path, limit, last_evaluated_key) that add meaning beyond the bare schema, explaining what each parameter represents. However, it doesn't provide format details (e.g., path syntax, limit range) or clarify the relationship between scope and path. Given the coverage gap, this is minimal compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Harvest Filesのファイル・ディレクトリ一覧を取得します' (Get a list of files/directories from Harvest Files). It specifies the verb ('取得します' - get/retrieve) and resource ('ファイル・ディレクトリ一覧' - file/directory list). However, it doesn't explicitly differentiate from sibling tools like get_harvest_file_info or get_harvest_file_download_url, which likely serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like get_harvest_file_info (likely for metadata) and get_harvest_file_download_url (likely for downloading), there's no indication of when list_harvest_files is appropriate versus those other tools. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
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 states the tool retrieves storage usage (e.g., usage amount, file count), implying a read-only operation, but doesn't clarify permissions, rate limits, or side effects. It adds some context by specifying what information is returned, but lacks details on response format or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the main purpose stated first, followed by structured sections for Args and Returns. Each sentence earns its place by providing essential information without redundancy. However, the Japanese text might require translation for some agents, slightly affecting clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the purpose, parameter semantics, and return content adequately. However, it lacks usage guidelines and detailed behavioral context, which are minor gaps for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics for the single parameter 'scope' by explaining it as 'スコープ(private または operators/{operator_id})' (scope: private or operators/{operator_id}), which clarifies its purpose and possible values. Since schema description coverage is 0% and there's only one parameter, this adequately compensates, though it doesn't detail default behavior or constraints beyond the listed options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Harvest Filesのストレージ使用状況を取得します' (Get Harvest Files storage usage status). It specifies the verb '取得します' (get) and resource 'ストレージ使用状況' (storage usage status), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_harvest_files' or 'get_harvest_data', which might also retrieve Harvest-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_harvest_files' or 'get_harvest_data', nor does it specify prerequisites, exclusions, or contextual triggers for usage. The agent must infer usage based on the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
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 adds some context beyond the schema: it specifies the maximum limit (1000), explains pagination behavior with 'last_evaluated_key', and describes the return format. However, it doesn't cover important aspects like rate limits, authentication requirements, error conditions, or whether this is a read-only operation (though implied by 'get').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by organized parameter and return sections. Every sentence earns its place by providing essential information. It could be slightly more concise by combining some explanations, but the structure is effective and front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, pagination, time filtering) and no annotations, the description does well. It explains all parameters thoroughly and mentions the return format. With an output schema present, it doesn't need to detail return values. The main gap is lack of sibling tool differentiation, but otherwise it's reasonably complete for this data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must fully compensate. It successfully documents all 6 parameters with clear explanations: 'imsi' as SIM identifier, time parameters as UNIX timestamps in milliseconds, 'sort' with enum values explained, 'limit' with maximum constraint, and 'last_evaluated_key' for pagination. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '特定SIMのHarvest Dataを取得します' (Retrieve Harvest Data for a specific SIM). It specifies the verb '取得します' (retrieve) and resource 'Harvest Data', but doesn't explicitly differentiate it from sibling tools like 'get_harvest_data_by_resource' or 'list_harvest_files', which likely have different filtering or output approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention sibling tools or explain scenarios where this tool is preferred over others like 'get_harvest_data_by_resource' or 'list_harvest_files'. Usage is implied only through the parameter descriptions, not explicit contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions pagination behavior ('ページング用キー') and a maximum limit constraint ('最大1000'), which are useful behavioral details. However, it doesn't cover important aspects like authentication requirements, rate limits, error conditions, or whether this is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and front-loaded the core purpose. Every sentence adds value, though the Japanese-only presentation might be less accessible in multilingual contexts. The structure is efficient with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, pagination, time-based filtering) and the presence of an output schema (which handles return values), the description is quite complete. It explains all parameters thoroughly and mentions the pagination behavior. The main gap is lack of sibling tool differentiation and some behavioral context like authentication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 7 parameters, the description provides excellent parameter semantics. It clearly explains each parameter's purpose, format constraints (UNIX timestamp in milliseconds), enum values for 'sort', maximum limit, and the pagination mechanism. This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'リソースタイプとIDでHarvest Dataを取得します' (Get Harvest Data by resource type and ID). It specifies the verb '取得します' (get/retrieve) and the resource 'Harvest Data', but doesn't explicitly differentiate from sibling tools like 'get_harvest_data' which likely has a different filtering approach.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_harvest_data', 'get_harvest_file_download_url', 'get_harvest_file_info', and 'list_harvest_files', there's no indication of when this resource-based retrieval is preferred over other methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/leaveanest/alt-soracom-data-reader-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server