Skip to main content
Glama

Amir Pournasserian (pournasserian.com)

Server Details

Search and fetch tools over the pages of pournasserian.com, Amir Pournasserian's personal website: his writing on MCP, AI agents and RAG, his experience, case studies and open-source projects. No authentication. Runs the open-source mcp-my-site.

Ownership verified
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
pournasserian/mcp-my-site
GitHub Stars
5
Server Listing
mcp-my-site
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have a clean, complementary split: search locates pages and fetch retrieves full page content by id/url. Descriptions even cross-reference each other, leaving no realistic chance of misselection.

Naming Consistency4/5

Both names are bare lowercase verbs ('search', 'fetch') in a consistent style with no mixing of conventions. The only minor deviation is the lack of a noun object (e.g. search_pages/fetch_page), which slightly reduces specificity.

Tool Count3/5

Two tools is minimal and well-matched to a static website read-only surface, but per the rubric a 2-tool surface feels thin and leaves little room for alternate access patterns. Nothing is extraneous, yet the set is at the low end of scope.

Completeness4/5

Search (with pagination via offset/limit and hasMore) plus fetch covers the core read lifecycle for a site index, and fetch returns title, description, language, date and content. Minor gap: no way to enumerate or browse all 86 indexed pages without a keyword/semantic query.

Available Tools

2 tools
fetchFetch a pageA
Read-onlyIdempotent
Inspect

Returns the full content of one page of the website as Markdown in text, with its title, description, language and last modified date. Pass the id (or url) of a search result.

NameRequiredDescriptionDefault
idNoThe id of a search result.
urlNoAbsolute URL of the page. An alternative to id; pass either one.

Output Schema

NameRequiredDescription
idYes
urlYes
textYes
titleYes
languageYes
modifiedYes
descriptionYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so safety and repeatability are covered. The description adds the content shape (Markdown plus metadata fields), which is modest value but overlaps the existing output schema rather than disclosing behavior like failure modes when only one page cannot be retrieved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with what is returned; the second sentence carries the only invocation detail. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not enumerate return fields, and annotations cover the safety profile; parameters are fully documented. The remaining gap is the absence of any statement about supplying neither id nor url, since zero parameters are required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema itself states 'An alternative to id; pass either one.' The description merely restates that id or url comes from a search result, adding only the provenance of the id, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (returns) and resource (the full content of one page) plus the exact return payload — Markdown text with title, description, language and last-modified date. The sibling 'search' is only implicitly contrasted via 'of a search result', so differentiation is inferable rather than stated outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Pass the id (or url) of a search result' implies the tool is used downstream of search, which gives usable context. However, there is no explicit when-to-use/when-not guidance, no statement that exactly one of id or url is required, and no mention of error behavior when neither is supplied.

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.

  1. 1 tool update
    • Changedsearch5 fields changed
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Pages to skip before the first result, for paging. Default 0; values past the server's cap are clamped.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / indexedAt
        Added value: +{
        +  "format": "date-time",
        +  "type": "string"
        +}
      • addedOutput schema / properties / total
        Added value: +{
        +  "type": "integer"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "keywordOnly",
        -  "results"
        -]New value: +[
        +  "query",
        +  "keywordOnly",
        +  "indexedAt",
        +  "total",
        +  "hasMore",
        +  "results"
        +]
  2. 1 tool update
    • Changedsearch5 fields changed
      • removedInput schema / properties / offset
        Removed value: -{
        -  "default": 0,
        -  "description": "Pages to skip before the first result, for paging. Default 0; values past the server's cap are clamped.",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / hasMore
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / indexedAt
        Removed value: -{
        -  "format": "date-time",
        -  "type": "string"
        -}
      • removedOutput schema / properties / total
        Removed value: -{
        -  "type": "integer"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "keywordOnly",
        -  "indexedAt",
        -  "total",
        -  "hasMore",
        -  "results"
        -]New value: +[
        +  "query",
        +  "keywordOnly",
        +  "results"
        +]
  3. 1 tool update
    • Changedsearch5 fields changed
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Pages to skip before the first result, for paging. Default 0; values past the server's cap are clamped.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / indexedAt
        Added value: +{
        +  "format": "date-time",
        +  "type": "string"
        +}
      • addedOutput schema / properties / total
        Added value: +{
        +  "type": "integer"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "keywordOnly",
        -  "results"
        -]New value: +[
        +  "query",
        +  "keywordOnly",
        +  "indexedAt",
        +  "total",
        +  "hasMore",
        +  "results"
        +]

Publisher details

Operator
Amir Pournasserian · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables AI agents to perform web searches and extract full-text content from web pages via standard MCP tools, with fallback search and semantic reranking.
    2
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables any MCP-compatible AI agent to search the live web and fetch pages as clean Markdown, including batch fetching with rate limiting, retries, and context-safe truncation.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents and LLM apps to run live web searches and fetch public web pages as Markdown, returning structured search results and page content through MCP clients.
    1
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.