Agent Surface
Server Details
Search and read the Agent Surface guide to making websites, apps, APIs and CLIs work with AI agents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- howells/agentsurface
- GitHub Stars
- 1
TDQS
Scored across 3 tools
Each tool has a distinct purpose: get_page retrieves content, list_pages enumerates pages, and search finds pages by query. There is no overlap or ambiguity between them.
Two tools follow the verb_noun pattern (get_page, list_pages), while 'search' is a single verb without a noun. The style is still consistent and predictable, with a minor deviation.
With only 3 tools, the server is tightly scoped for documentation access. Each tool serves a clear role and none are redundant, making the count appropriate for the purpose.
For a read-only docs server, the surface covers all core operations: listing pages, retrieving content, and searching. There are no obvious gaps, as write operations are typically not expected for this domain.
Available Tools
3 toolsget_pageGet PageAInspect
Get the Markdown content of a docs page by its pathname (URL)
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It does disclose the core behavior: returning Markdown content for a given pathname. However, it does not mention behavior on missing pages, invalid URLs, authentication requirements, or whether extra metadata is returned alongside the content.
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 that front-loads the essential action ('Get the Markdown content') and then specifies the parameter. There is no filler or redundant repetition of the tool name.
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 tool with no output schema, the description covers the main invocation need: what to pass and what you get back. It omits error handling and return-value structure, and the absence of annotations leaves behavior on edge cases unexplained. Still, the tool is simple enough that this is a minor gap rather than a fatal one.
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 does by clarifying that the single 'url' parameter is the page pathname/URL, which adds meaning beyond the raw schema definition. It could go further by specifying format requirements, such as leading slash or full URL, but for a single simple parameter this is adequate.
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 identifies a specific verb ('Get'), a specific resource ('docs page'), the output format ('Markdown content'), and the identifying input ('pathname (URL)'). This distinguishes it from sibling tools like list_pages and search, which handle discovering pages rather than retrieving a single page's content.
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 usage context is implied: use this tool when you have a page pathname/URL and want its Markdown content. However, it does not explicitly state when not to use it or mention alternatives such as list_pages for discovery or search for finding pages by query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pagesList PagesAInspect
List all docs pages with their pathnames (URLs)
| Name | Required | Description | Default |
|---|---|---|---|
No 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 describing behavior. It does add useful detail by stating the tool returns 'all docs pages with their pathnames (URLs)', but it does not disclose potential pagination, ordering, or whether full page content is included. This is a minimal viable disclosure for a zero-parameter listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. It front-loads the action and resource ('List all docs pages') and then provides the key output detail ('pathnames (URLs)'). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter tool, the description is mostly complete: it states the action, scope, and output format. However, without an output schema, an agent may still wonder whether the result is just a list of URL strings or includes page titles or metadata. A brief mention of the return structure would make it fully 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?
The tool has zero parameters, so the schema is complete by definition and there is nothing for the description to clarify. The description appropriately adds no param information; the baseline of 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('List') and resource ('docs pages'), and identifies the output ('pathnames (URLs)'). It implicitly distinguishes itself from siblings get_page and search by focusing on listing all pages rather than retrieving or searching a specific one, though it does not explicitly name the alternatives.
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 get_page or search. There is no mention of alternatives, exclusions, or conditions. The only usage signal is implied by the word 'List', which is insufficient for helping an agent make a confident tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch DocsCInspect
Search docs pages with a query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| locale | No |
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 only restates the search action and offers no information about result format, ranking, pagination, limits, or failure behavior. This is a significant transparency gap.
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 and no filler words. It is appropriately concise, even though the terseness comes at the cost of behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool the basic call shape is present, but the lack of annotations, output schema, and usage guidance leaves important gaps: result format, locale behavior, and when to prefer search over siblings are all unspecified. The description is not robust enough for reliable agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain the parameters, but it only mentions 'a query' without format or semantics. The optional locale parameter is not addressed at all, leaving the agent to guess its valid values and effect.
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 ('search') and a clear target ('docs pages'), and indicates the operation is query-based. It reasonably differentiates from the siblings get_page and list_pages by implying keyword search rather than retrieval by ID or enumeration, though it does not spell out the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus get_page or list_pages, no mention of prerequisites, and no exclusions. An agent must infer the appropriate context entirely from the tool name and one-sentence description.
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.
3 tool updates
- First observed
get_page - First observed
list_pages - First observed
search
Related MCP Connectors
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
Search public agent questions and sourced findings, browse agents, and read the onboarding guide.
Read full memos, search site content and API guides, and discover live public agent memories.
Trust signals for AI agents: an open agent-readiness standard and developer tool guide. Read-only.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides web search and content extraction for AI agents.MIT
- AlicenseNot gradedqualityDmaintenanceWeb search, clean page reading & one-call research dossiers for AI agents. No API key — your agent does the synthesis.38 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to perform web searches, extract webpage content, and conduct end-to-end search-and-extract operations using multiple search providers and content extraction methods.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to fetch and extract clean, readable content from web pages, and search within pages for specific queries, without needing a full browser.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.