ARC-1
Server Quality Checklist
Latest release: v1.1.0
- Disambiguation3/5
The 8 tools are largely distinct in purpose, but there are overlaps. SAPRead and SAPContext both read object information, though they differ in orientation (raw source vs intent-level context). Similarly, SAPSearch and SAPContext both perform searches/usages - SAPContext's 'usages' action overlaps with SAPNavigate's references. SAPDiagnose also has syntax-checking while SAPLint covers linting, which could cause misselection.
Naming Consistency4/5Tool names follow a consistent SAP-prefix pattern (SAPTransport, SAPRead, SAPSearch, SAPManage, SAPNavigate, SAPLint, SAPDiagnose, SAPContext). All use CamelCase with the cognate verb as the suffix. Minor inconsistency: SAPRead/SAPSearch are noun-focused while SAPManage/SAPNavigate are verb-focused, but the pattern is coherent and predictable.
Tool Count4/58 tools is a reasonable count for an SAP development server covering transport management, object reading, searching, capability probe, navigation, linting, diagnostics, and context analysis. Each tool has a substantial surface area, though one could argue SAPContext and SAPNavigate/SAPRead have enough overlap to consolidate.
Completeness4/5The coverage is quite thorough for an ABAP development workflow: transport management (SAPTransport), reading (SAPRead), searching (SAPSearch), writing is implied via references to SAPWrite, diagnostics (SAPDiagnose), linting (SAPLint), and context/impact analysis (SAPContext). Notable gaps: SAPWrite itself is referenced but not included as a tool, and activation (SAPActivate) is mentioned but absent, creating dead ends for write workflows.
Average 4.4/5 across 8 of 8 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 46 of 47 community issues answered or closed in the last 6 months
- 208 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
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.
This repository includes a glama.json configuration file.
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?
The annotations readOnlyHint=false and destructiveHint=false do not clarify side effects. The description inconsistently labels some actions as 'read-only' (e.g., atc_variants, cds_testcases, odata_perf) but leaves write actions like apply_quickfix, trace_start, and set_sql_trace_state ambiguous. Notably, apply_quickfix is described as 'apply one proposal... no write', which is confusing and could mislead about its actual system impact.
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 a single bullet-like list of actions and their parameters, which is efficient and scannable. Although lengthy (covers 20+ actions), it avoids redundancy and maintains a consistent structure (action: description, parameters). It earns a 4 rather than 5 due to the density of information that could overwhelm without the schema reference.
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 complexity (38 parameters, 20+ actions), the description covers all actions and their required/optional parameters, notes read-only status for some, and points to a full reference. It lacks details on return formats or error handling, but since there is no output schema, this is acceptable. It is complete enough for an agent to select and invoke correctly in most scenarios.
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?
With 95% schema coverage, the baseline is 3. The description enriches parameters with context: it explains defaults (e.g., version defaults to 'active', sourceUri defaults to main source), required relationships (e.g., proposalUri needed for apply_quickfix), and per-action constraints (e.g., 'read-only' flags, 'needs allowDataPreview'). This adds meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Run diagnostics on ABAP objects and analyze runtime errors' and enumerates specific actions (syntax, unittest, ATC, dumps, traces, etc.). This distinguishes it from sibling tools like SAPRead or SAPLint, which have different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for each action (e.g., 'syntax-check', 'read-only', 'needs allowDataPreview') but does not explicitly compare against alternatives or state when to prefer this tool over SAPRead/SAPSearch. The implied usage is clear enough for diagnostics scenarios.
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?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds behavioral detail: references uses a scope-based Where-Used API, objectType filters by ADT slash type with bare-prefix behavior, and hierarchy returns superclass+interfaces+subclasses. However it doesn't disclose edge cases like authentication requirements, error conditions, or what happens when neither uri nor type+name is provided.
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 reasonably tight, front-loaded with the four actions, and each sentence adds value. The CDS recommendation sentence is slightly long but necessary for sibling differentiation. No wasted prose.
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?
For a 9-parameter navigation tool with no output schema, the description covers the main behavioral surface: what each action does, the scope-based references approach, filtering behavior, and a strong sibling alternative. Some gaps remain (e.g., what definition/completion return, line/column handling), but the core guidance is present and actionable.
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?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the bare-prefix matching behavior for objectType ('A bare prefix matches every subtype'), the maxResults default/cap semantics, and the type+name-as-uri-alternative pattern for references. These go beyond the literal schema texts.
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 navigates code with four specific actions: definitions, references, completion, and class hierarchy. It distinguishes itself from siblings by mentioning SAPContext for CDS views specifically, giving some differentiation though not for all sibling tools (SAPSearch, SAPLint etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance, notably recommending SAPContext(action='impact') as an alternative for CDS (DDLS) where-used queries — a clear when-not-here, use-this-instead directive. It also explains when to pass type+name instead of uri for references, which is actionable usage 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?
The readOnlyHint annotation already declares this is a safe read operation, so the bar is somewhat lowered. The description does add value beyond the annotation: it discloses token efficiency ('7-30x fewer tokens'), compression behavior ('returns compressed dependency contracts, not full source'), and filtering behavior (SAP standard objects filtered out). However, it does not describe the return response shape or what happens when KTD is unavailable, and the guardrail error behavior is only mentioned in the schema action text, not the top description. It's adequate but not rich.
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 dense and front-loaded with the critical scoping sentence first. The 'Decision rule' section uses bullet-free line breaks for scannability. It's reasonably complete but does get long, with some redundancy between the top description and the action field descriptions in the schema (e.g., the impact description appears in both places nearly verbatim). A tighter version could trim the duplicated impact enumeration while keeping the sibling-tool comparisons.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is genuinely complex — 12 parameters, 4 actions with action-specific parameter meanings (depth means different things per action, maxResults has different defaults per action) — the description is remarkably complete. It covers the decision matrix, cross-tool sequencing, token-cost tradeoffs, and specific per-action return semantics. It points to a docs page (docs_page SAPContext) for full detail. There's no output schema, so the description carries the burden of explaining what's returned, which it does well for each action bucket.
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?
Schema description coverage is 100% and each parameter's schema already has a detailed description. The tool description adds meaningful context on top: it explains the interplay between parameters (e.g., includeIndirect for transitive usages), and provides '7-30x fewer tokens' as motivation for depth/deps defaults. It documents the conditional requirements (type required unless impact/usages, group required for FUNC) that the schema alone doesn't fully convey semantically. This clearly exceeds the base-3 baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description has a very specific verb+resource: 'Primary tool for understanding ABAP/CDS objects before specs, reviews, explanations, or changes.' It clearly distinguishes from the sibling SAPRead by saying 'use instead of SAPRead when the user asks what an object does' and explicitly says to use SAPRead after for exact source/method bodies/grep/drafts. The action enumeration (impact/deps/usages/structure) maps clear verbs to concrete behaviors, further differentiating it from siblings like SAPNavigate and SAPQuery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit decision rule mapping user question phrasing to the correct action: 'What breaks if I change <CDS>?' → impact, 'What does <object> do?' → deps, 'Find all callers' → usages. It names the alternative (SAPRead) and the exact sequencing ('Use SAPRead after SAPContext'). It also states exclusions — non-DDLS input returns a guardrail error for impact, and prefers impact over text-scanning SAPQuery. This is exemplary when/why/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, and the description aligns: it distinguishes read actions ('features', 'probe', 'cache_stats', flp_list_*) from mutating actions and notes that mutating ones 'require writable safety config and write scope in authenticated mode'. The description adds meaningful behavioral context beyond annotations: caching semantics ('fast, no round-trip'), returns (features + systemType), and the concrete directive that 'available: false means do NOT attempt dependent operations'. Slight deduction for not spelling out exactly what 'probe' validation entails in terms of side effects or cleanup.
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 dense but front-loaded with the most important purpose and usage guidance. The action list is well-structured with a clear read vs write grouping, and FLP methods are compactly enumerated. Minor deduction: the action enumeration overlaps heavily with the schema's action enum, and the set_api_state detail sentence is somewhat bulky, but overall every section earns its place and the prose is resource-efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool (23 params, multiple sub-domains: probe/features, package lifecycle, FLP read and write, set_api_state). The description covers every domain, rules out ambiguities (deprecation, alternative LADI path), documents defaults and edge cases (contract support per object type), and states return values (features + systemType) since there's no output schema. Given the breadth and the strong schema coverage, the description is appropriately complete.
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 100%, so the schema already documents all 23 parameters thoroughly with inline descriptions. The description adds a handful of meaningful semantics beyond the schema: the action list with read-vs-mutating classification, the set_api_state default values (RELEASED, C1, with C0 for SRVD and C3 for views) which clarify the apiState/contract params, and the write-scope gating requirement. However, most parameter semantics live in the schema, so the description doesn't carry the heavy lifting here — hence a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource statement: 'Probe and report SAP system capabilities' and explicitly frames when to use it ('Use BEFORE operations that depend on optional features'). It clearly distinguishes from siblings by listing covered domains (abapGit, RAP/CDS, AMDP, HANA, UI5/Fiori, CTS transports, FLP) and package lifecycle. The action list with inline sub-descriptions clearly delineates the tool's many functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use BEFORE operations that depend on optional features' and lists specific features. It also gives exclusion guidance, e.g., 'Classic designer tile/target-mapping model, deprecated since S/4HANA 2023; Work Zone exposure v2 needs LADIs (SAPRead type=UIAD)' — directing to an alternative tool. The 'available: false means do NOT attempt dependent operations' instruction is a clear when-not-to-proceed signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant context beyond annotations: it discloses which sub-actions are local vs. remote (calling SAP), that the 'set' for formatter settings is 'blocked read-only', and that lint_and_fix auto-fixes issues and returns fixed source. Annotations provide readOnlyHint=false and destructiveHint=false, but the description adds richer behavioral detail about the mixed local/remote execution model and the blocked set 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 compact and front-loads the core purpose in the first sentence before enumerating actions. The bullet list is scannable. Slight length from the detail on actions and their parameters, but each sentence earns its place and covers genuinely useful information.
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?
With no output schema, the description carries the burden of explaining what each action returns, which it does (fixed source for lint_and_fix, rules+config for list_rules). It covers the required parameter (action), the six actions thoroughly, and relevant tool boundaries. Minor gap: it doesn't specify the return shape of the lint/format actions beyond lint_and_fix, but the overall coverage is strong.
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?
Schema coverage is 100%, so the baseline is 3. The description adds value by mapping which actions require which parameters (e.g., 'source needed for format', 'not needed for list_rules/get_formatter_settings', style/indentation are 'for set_formatter_settings'). This goes beyond the bare schema descriptions and clarifies parameter-to-action relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run local abaplint rules on ABAP/CDS source' with a specific verb (run), resource (ABAP/CDS source), and explicit action categories for each sub-command. It distinguishes itself from siblings by explicitly noting 'For ATC/syntax/unit tests use SAPDiagnose'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains both when to use each action (lint, lint_and_fix, list_rules, format, formatter settings) and what each does. It explicitly calls out that lint/lint_and_fix/list_rules run locally while format and formatter settings call SAP, and names the alternative tool SAPDiagnose for ATC/syntax/unit tests. This is exceptional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is exceptionally transparent about behavior. It warns of destructive actions (delete, release) and details how to control them (recursive, removeLockedObjects). It discloses limitations (e.g., history is not complete, create always produces K request, SAP_BASIS 7.50 limitation for target). It also distinguishes read-only operations (layers, targets) and notes permission requirements ('no write scope needed'). This goes far beyond the annotations (readOnlyHint=false, destructiveHint=true) and even enriches them with actionable context. 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: it opens with the overall purpose, then lists actions with embedded details, and includes status codes and caveats. Each sentence carries meaningful information; there is little fluff. While not as terse as the TDQS 4.3 example, it efficiently packs a large amount of necessary detail for a complex 21-parameter tool. The structure (action-by-action) aids scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (21 parameters, 10+ actions, no output schema), the description is remarkably complete. It covers all actions, explains edge cases (e.g., $TMP default, extended transport control requirement, SAP_BASIS 7.50 fallback), provides return hints (e.g., 'response reports the resolved transport target'), and clarifies limitations (e.g., 'not complete transport history'). It effectively compensates for the missing output schema by describing expected results and failure modes.
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?
Schema coverage is 100% with detailed per-parameter descriptions. The tool description adds further semantic context, such as defaults ($TMP), interplay between parameters (package influences target), and validation rules (target must be valid). For example, the 'action' parameter in the schema is already long, but the description adds practical guidance on when to use summary=true and how to interpret diff baselines. This adds value beyond the schema, justifying a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as managing CTS transport requests (SE09/SE10) and enumerates specific actions (list, get, create, release, etc.). It uses a specific verb+resource pattern and differentiates from sibling tools like SAPRead or SAPManage by focusing on transport lifecycle operations. The explicit action list and status code explanation provide unambiguous scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool and its actions, e.g., 'check: check create/modify transport needs' and 'history: ... works without SAP_ALLOW_TRANSPORT_WRITES'. It also notes read-only actions (layers, targets) and explains trade-offs (e.g., summary=true for cheaper list). However, it does not explicitly compare against sibling tools or state 'use this instead of X', so it lacks explicit exclusions or alternatives. Still, context is clear enough for a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries the transparency burden. It discloses the db source requires 'sql scope and SAP_ALLOW_FREE_SQL=true', explains the 'splitBrain' array behavior when sources disagree, notes BOR objects appear as SOBJ, and covers how uri/objectType feed other tools. This is strong behavioral disclosure beyond the read-only hint.
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 compact and front-loaded with the core purpose, then organized into numbered modes with a tips section. It's dense but every sentence adds value — no wasted words. Slightly long but appropriately so for a multi-mode tool with nuanced behaviors.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no output schema, and readOnly-only annotations, the description covers the purpose, all modes, parameter semantics, cross-tool integration (uri feeds SAPNavigate, objectType feeds SAPRead/SAPWrite/SAPActivate), and edge cases (orphan/ghost rows, splitBrain). Nothing critical is unexplained for an agent to select and invoke correctly.
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?
Though schema coverage is 100%, the description adds substantial meaning: it clarifies searchType 'object' is default and tadir_lookup does exact cross-package lookup, explains query applies comma/whitespace-separated names for tadir_lookup, details the source enum values (adt uses info-system endpoint, db uses SQL against TADIR), and explains objectTypes for multiple type filters. Each parameter's behavior is enriched beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for ABAP objects, exact object-directory entries, or source code' and enumerates two distinct modes (object search default, tadir_lookup). It distinguishes itself from siblings by explicitly stating searches object NAMES only and directing field-name searches to SAPRead/SAPQuery, clearly differentiating from associated tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: prefer tadir_lookup over 'long SAPQuery TADIR IN-lists', and directs users away for field-name searches ('for field names use SAPRead... or SAPQuery on DD03L'). It also explains when source='db' is advantageous (surfaces orphan/ghost rows) versus the adt default.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the readOnlyHint annotation, disclosing on-prem-only types, token cost implications, draft/active version semantics, diff behavior, and the note about inactive draft existence. No contradictions 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but justified given 23 parameters and 40+ types. It is front-loaded with the core purpose and then systematically covers types, parameters, and options. It could benefit from more sectioning, but each sentence provides essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with no output schema, the description covers all parameter interactions, type-specific behaviors, platform restrictions, and performance considerations. It is exceptionally complete, leaving few if any gaps for an agent to misinterpret.
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?
Even with 100% schema coverage, the description adds rich semantics: examples for where, warnings about 758 !=, details on grep fallback, include semantics, method usage, and format costs. It thoroughly explains each parameter's behavior and edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read SAP ABAP objects' and enumerates all supported types, distinguishing itself from SAPContext (intent-level) and other siblings like SAPSearch. It also specifies sub-actions (raw source, method body, grep, etc.), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly advises to prefer SAPContext for explanations or pre-change orientation, and provides detailed guidance on when to use method='*', grep, include, and expand_includes. It also notes on-prem limitations and token-saving strategies, leaving no ambiguity about selection.
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/arc-mcp/arc-1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server