OriginGrid

AI Agent Source Registry. 288K+ curated sources for agentic search and discovery.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
87%
Calidad de los nombres
75%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (5)

  • LOWTool 'origingrid_approve_contribution' name length outside 3-30 rangeen origingrid_approve_contribution
  • LOWTool 'origingrid_pending_contributions' name length outside 3-30 rangeen origingrid_pending_contributions
  • LOWTool 'origingrid_search_session_create' name length outside 3-30 rangeen origingrid_search_session_create
  • LOWTool 'origingrid_search_session_execute' name length outside 3-30 rangeen origingrid_search_session_execute
  • LOWTool 'origingrid_search_session_status' name length outside 3-30 rangeen origingrid_search_session_status

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,842Tokens (definiciones de herramientas)
~1014 BTamaño de respuesta típico
Impacto significativo en la atención (2.22% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "origingrid-mcp": {
      "url": "https://www.origingrid.net/mcp"
    }
  }
}

Puntos de conexión remotos

https://www.origingrid.net/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (19)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢origingrid_search(limit, offset, query)

Search for AI agent information sources. Returns `structuredContent.sources[]` with {source_id, name, url, region, difficulty, score}. Read the array directly — no Markdown parsing. Then call origingrid_fetch for each source's URL to get actual content. [ASRP: Use FIRST to find sources. Then fetch each source.url.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 5,
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "description": "Skip the first N results for pagination",
      "type": "integer"
    },
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢origingrid_get_source(source_id)

Get details for a single information source by its source_id

Esquema de entrada

{
  "type": "object",
  "properties": {
    "source_id": {
      "type": "string"
    }
  },
  "required": [
    "source_id"
  ]
}
🟢origingrid_list(limit, offset, region, topic)

List available information sources, optionally filtered by topic and/or region. Supports `limit`/`offset` pagination; the response reports the **total** number of matches so you can page through all results. [ASRP: Browse available sources by category. Use for exploration before planning.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 10,
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "description": "Skip the first N results for pagination",
      "type": "integer"
    },
    "region": {
      "type": "string"
    },
    "topic": {
      "type": "string"
    }
  }
}
🟡origingrid_contribute(category, title, url)

Submit a new URL as a source-card candidate (anonymous, pending review). [ASRP: Use AFTER finding a URL that is useful but not yet in the registry.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "url"
  ]
}
🟢origingrid_fetch(delivery_level, query, selector, source_id, timeout, ...)

Fetch first-hand content from a URL. Returns `structuredContent.data` with {title, content, url, cache_hit, fetched_at}. Read `.data.content` directly — the metadata and content are separated. Pass `delivery_level=excerpt` (default) for ~300 chars, `full` for complete content. [ASRP: Call AFTER origingrid_search. Loop over sources[] and fetch each source.url.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "delivery_level": {
      "default": "full",
      "description": "Content delivery level: full=complete, excerpt=~300 chars, title=only title",
      "enum": [
        "full",
        "excerpt",
        "title"
      ],
      "type": "string"
    },
    "query": {
      "type": "string"
    },
    "selector": {
      "description": "CSS selector to extract (default: body)",
      "type": "string"
    },
    "source_id": {
      "description": "Registered source id (local-index fallback)",
      "type": "string"
    },
    "timeout": {
      "description": "Fetch timeout in seconds (default: 20)",
      "type": "integer"
    },
    "url": {
      "description": "Direct URL to fetch live (first-hand content, cached locally)",
      "type": "string"
    }
  }
}
🟢origingrid_stats

Get OriginGrid registry statistics

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "total_contributions": {
      "type": "integer"
    },
    "total_searches": {
      "type": "integer"
    },
    "total_sources": {
      "type": "integer"
    },
    "total_users": {
      "type": "integer"
    }
  }
}
🟢origingrid_search_similar(limit, source_id)

Find sources similar to a known source. [ASRP: Use AFTER finding a relevant source to expand your search scope before calling origingrid_plan.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 5,
      "type": "integer"
    },
    "source_id": {
      "type": "string"
    }
  },
  "required": [
    "source_id"
  ]
}
🟢origingrid_search_by_region(limit, query, region)

Search sources filtered by region (cn/global/academic/etc) and optionally by query. [ASRP: Use for region-specific discovery. Narrower than origingrid_search, use when you know the target region.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 10,
      "type": "integer"
    },
    "query": {
      "type": "string"
    },
    "region": {
      "type": "string"
    }
  },
  "required": [
    "region"
  ]
}
⚪origingrid_approve_contribution(admin_token, contribution_id)

Approve a pending source-card contribution (admin only; requires admin_token when ORIGINGRID_ADMIN_TOKEN is set)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "admin_token": {
      "type": "string"
    },
    "contribution_id": {
      "type": "integer"
    }
  },
  "required": [
    "contribution_id"
  ]
}
🟢origingrid_reject_contribution(admin_token, contribution_id, reason)

Reject a pending source-card contribution (admin only; requires admin_token when ORIGINGRID_ADMIN_TOKEN is set). Optionally pass `reason`. Review loop: list pending → origingrid_approve_contribution(id) / origingrid_reject_contribution(id)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "admin_token": {
      "type": "string"
    },
    "contribution_id": {
      "type": "integer"
    },
    "reason": {
      "description": "Optional rejection reason (stored for the contributor)",
      "type": "string"
    }
  },
  "required": [
    "contribution_id"
  ]
}
🟢origingrid_pending_contributions(admin_token)

List pending source-card contributions awaiting admin review (admin only; requires admin_token when ORIGINGRID_ADMIN_TOKEN is set). Review loop: list pending → origingrid_approve_contribution(id)

Esquema de entrada

{
  "type": "object",
  "properties": {
    "admin_token": {
      "description": "Admin token (required only if ORIGINGRID_ADMIN_TOKEN is configured)",
      "type": "string"
    }
  }
}
🟢origingrid_discover(limit, query, region, topic)

Discover first-hand information sources for a topic from the OriginGrid local registry — no external search engine involved. Optionally narrow by topic and/or region. Follow up with origingrid_fetch(url) for live content or origingrid_get_source for details. [ASRP: Use FIRST for broad topic discovery. Follow with origingrid_plan for multi-step fetch or origingrid_fetch for single URL.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 8,
      "type": "integer"
    },
    "query": {
      "description": "Topic or theme to discover sources for",
      "type": "string"
    },
    "region": {
      "description": "Optional region filter (e.g. cn, global, academic)",
      "type": "string"
    },
    "topic": {
      "description": "Optional topic/category filter (e.g. programming, finance)",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟡origingrid_resolve(intent, limit, query, region, topic)

Resolve a natural-language query into directly executable first-hand source URLs. Returns structured JSON with executable_url that the agent opens locally. Supports searchable sources (API/search URLs with query parameters) and navigable sources (key pages like about/products/docs/pricing). Does NOT proxy-fetch or submit URLs to general-purpose search engines. [ASRP: Lightweight alternative to plan+execute_batch. Use for direct URL resolution without multi-step plans. For complex queries, use origingrid_plan instead.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "intent": {
      "description": "Explicit intent override (auto/about/products/docs/pricing/news/contact/search/academic/code). Default: auto-detect",
      "type": "string"
    },
    "limit": {
      "default": 5,
      "description": "Max results",
      "type": "integer"
    },
    "query": {
      "description": "Natural language query",
      "type": "string"
    },
    "region": {
      "description": "Optional region filter",
      "type": "string"
    },
    "topic": {
      "description": "Optional topic/category filter",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "resolved_intent": {
      "type": "string"
    },
    "results": {
      "type": "array"
    }
  }
}
🟢origingrid_plan(intent, max_sources, query, timeout_hint)

Generate an executable search plan for an AI agent. Returns a structured JSON plan with ordered steps, each containing an executable URL with method, expected latency, difficulty, and priority. The agent executes the steps itself — no search-engine caching. Steps within the same parallel_group can be fetched concurrently. Requires browser for yellow-difficulty sources. [ASRP: Call AFTER search/discover. Pass the returned steps to origingrid_execute_batch for concurrent execution.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "intent": {
      "description": "Explicit intent override (auto/about/products/docs/pricing/news/contact/search/academic/code). Default: auto-detect",
      "type": "string"
    },
    "max_sources": {
      "default": 5,
      "description": "Maximum number of plan steps to return (max 20)",
      "type": "integer"
    },
    "query": {
      "description": "Search query",
      "type": "string"
    },
    "timeout_hint": {
      "default": 30,
      "description": "Agent's max acceptable wait in seconds",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "parallel_groups": {
      "type": "array"
    },
    "plan_id": {
      "type": "string"
    },
    "query": {
      "type": "string"
    },
    "resolved_intent": {
      "type": "string"
    },
    "steps": {
      "type": "array"
    }
  }
}
🟢origingrid_execute_batch(batch_timeout, parallel_groups, retry_count, step_timeout, steps)

Execute multiple search plan steps in batch. Accepts `steps` (array of step objects from origingrid_plan) and optional `parallel_groups` (array of arrays of step indices). Steps within the same parallel_group run concurrently on the server — the agent doesn't need to manage concurrency. Supports per-step timeout, automatic retry (default 1), and error isolation (one step failing doesn't affect others). Concurrency is limited to 8 by default for VPS memory safety. Returns structured results with elapsed timing per step. Combine with origingrid_plan: plan → execute_batch → agent reads the results. [ASRP: Call AFTER origingrid_plan. Steps in same parallel_group run concurrently.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "batch_timeout": {
      "default": 90,
      "description": "Total batch timeout in seconds (max 90)",
      "type": "integer"
    },
    "parallel_groups": {
      "description": "Optional: groups of step indices to run in parallel. Each group waits for the previous to finish. Default: one step per group (serial).",
      "items": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "type": "array"
    },
    "retry_count": {
      "default": 1,
      "description": "Number of retry attempts per step",
      "type": "integer"
    },
    "step_timeout": {
      "default": 30,
      "description": "Per-step timeout in seconds",
      "type": "integer"
    },
    "steps": {
      "description": "Array of step objects (from origingrid_plan steps)",
      "items": {
        "properties": {
          "difficulty": {
            "description": "Fetch difficulty",
            "enum": [
              "green",
              "yellow",
              "red"
            ],
            "type": "string"
          },
          "source_id": {
            "description": "Source identifier from plan",
            "type": "string"
          },
          "url": {
            "description": "URL to fetch",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "steps"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "completed": {
      "type": "integer"
    },
    "concurrency_limit": {
      "type": "integer"
    },
    "failed": {
      "type": "integer"
    },
    "results": {
      "type": "array"
    },
    "total_elapsed_ms": {
      "type": "integer"
    }
  }
}
🟡origingrid_search_session_create(intent, max_sources, query)

Create a search session that persists across multiple tool calls. Generates a plan and returns a session_id. Call origingrid_search_session_execute with this session_id to execute steps group by group. [ASRP: Use INSTEAD of origingrid_plan+execute_batch when you need persistent session state across calls.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "intent": {
      "description": "Explicit intent override (auto/about/products/docs/pricing/news/contact/search/academic/code). Default: auto-detect",
      "type": "string"
    },
    "max_sources": {
      "default": 5,
      "description": "Maximum number of sources (max 20)",
      "type": "integer"
    },
    "query": {
      "description": "Search query",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢origingrid_search_session_execute(batch_timeout, retry_count, session_id, step_timeout)

Execute the next unexecuted step group in a search session. Pass the session_id from origingrid_search_session_create. Returns results for the current group and reports remaining groups. [ASRP: Call AFTER origingrid_search_session_create. Repeat until remaining_groups is 0.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "batch_timeout": {
      "default": 90,
      "description": "Total batch timeout in seconds (max 90)",
      "type": "integer"
    },
    "retry_count": {
      "default": 1,
      "description": "Number of retry attempts per step",
      "type": "integer"
    },
    "session_id": {
      "description": "Session ID from origingrid_search_session_create",
      "type": "string"
    },
    "step_timeout": {
      "default": 30,
      "description": "Per-step timeout in seconds",
      "type": "integer"
    }
  },
  "required": [
    "session_id"
  ]
}
🟢origingrid_search_session_status(session_id)

Get the current status of a search session. Returns query, depth, completed/total groups, progress percentage, and timestamps. [ASRP: Use to check session progress between execute calls.]

Esquema de entrada

{
  "type": "object",
  "properties": {
    "session_id": {
      "description": "Session ID from origingrid_search_session_create",
      "type": "string"
    }
  },
  "required": [
    "session_id"
  ]
}
🟡origingrid_feedback(comment, rating, search_id, source_id)

Submit feedback (rating 1-5) for a source returned in a previous search, using that search's `search_id` (from origingrid_search response). Feeds source quality signals; rating 3 = neutral, no positive/negative bias.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "comment": {
      "description": "optional context",
      "type": "string"
    },
    "rating": {
      "description": "1=bad, 2=poor, 3=neutral, 4=good, 5=excellent",
      "maximum": 5,
      "minimum": 1,
      "type": "integer"
    },
    "search_id": {
      "description": "search_id from a previous origingrid_search response",
      "type": "integer"
    },
    "source_id": {
      "description": "source_id from the search results",
      "type": "string"
    }
  },
  "required": [
    "search_id",
    "source_id",
    "rating"
  ]
}

Prompts recomendados

search_research
Search for information about [topic] using OriginGrid
Herramientas esperadas: origingrid_search
find_specific
Find [specific item] using OriginGrid
Herramientas esperadas: origingrid_search
retrieve_data
Get details about [item] from OriginGrid
Herramientas esperadas: origingrid_get_source
fetch_info
Fetch [information type] using OriginGrid
Herramientas esperadas: origingrid_get_source
list_items
List all [items] available in OriginGrid
Herramientas esperadas: origingrid_list

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada19 herramientas
verificadoversión no registrada19 herramientas