Server definition
- Hash
- sha256:bab7f14b544aded4cdca68cd085fc428e08a5702867f24774296db03eaa9051d
- What it is
- What a remote MCP server returned when asked what it offers: 19 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Approve a pending source-card contribution (admin only; requires admin_token when ORIGINGRID_ADMIN_TOKEN is set)",
"inputSchema": {
"properties": {
"admin_token": {
"type": "string"
},
"contribution_id": {
"type": "integer"
}
},
"required": [
"contribution_id"
],
"type": "object"
},
"name": "origingrid_approve_contribution",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"properties": {
"category": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "origingrid_contribute",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
],
"type": "object"
},
"name": "origingrid_discover",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
],
"type": "object"
},
"name": "origingrid_execute_batch",
"outputSchema": {
"properties": {
"completed": {
"type": "integer"
},
"concurrency_limit": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"results": {
"type": "array"
},
"total_elapsed_ms": {
"type": "integer"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"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"
],
"type": "object"
},
"name": "origingrid_feedback",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
}
},
"type": "object"
},
"name": "origingrid_fetch",
"outputSchema": null
},
{
"description": "Get details for a single information source by its source_id",
"inputSchema": {
"properties": {
"source_id": {
"type": "string"
}
},
"required": [
"source_id"
],
"type": "object"
},
"name": "origingrid_get_source",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
}
},
"type": "object"
},
"name": "origingrid_list",
"outputSchema": null
},
{
"description": "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)",
"inputSchema": {
"properties": {
"admin_token": {
"description": "Admin token (required only if ORIGINGRID_ADMIN_TOKEN is configured)",
"type": "string"
}
},
"type": "object"
},
"name": "origingrid_pending_contributions",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
],
"type": "object"
},
"name": "origingrid_plan",
"outputSchema": {
"properties": {
"parallel_groups": {
"type": "array"
},
"plan_id": {
"type": "string"
},
"query": {
"type": "string"
},
"resolved_intent": {
"type": "string"
},
"steps": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "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)",
"inputSchema": {
"properties": {
"admin_token": {
"type": "string"
},
"contribution_id": {
"type": "integer"
},
"reason": {
"description": "Optional rejection reason (stored for the contributor)",
"type": "string"
}
},
"required": [
"contribution_id"
],
"type": "object"
},
"name": "origingrid_reject_contribution",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
],
"type": "object"
},
"name": "origingrid_resolve",
"outputSchema": {
"properties": {
"query": {
"type": "string"
},
"resolved_intent": {
"type": "string"
},
"results": {
"type": "array"
}
},
"type": "object"
}
},
{
"description": "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.]",
"inputSchema": {
"properties": {
"limit": {
"default": 5,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Skip the first N results for pagination",
"type": "integer"
},
"query": {
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "origingrid_search",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"type": "integer"
},
"query": {
"type": "string"
},
"region": {
"type": "string"
}
},
"required": [
"region"
],
"type": "object"
},
"name": "origingrid_search_by_region",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
],
"type": "object"
},
"name": "origingrid_search_session_create",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"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"
],
"type": "object"
},
"name": "origingrid_search_session_execute",
"outputSchema": null
},
{
"description": "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.]",
"inputSchema": {
"properties": {
"session_id": {
"description": "Session ID from origingrid_search_session_create",
"type": "string"
}
},
"required": [
"session_id"
],
"type": "object"
},
"name": "origingrid_search_session_status",
"outputSchema": null
},
{
"description": "Find sources similar to a known source. [ASRP: Use AFTER finding a relevant source to expand your search scope before calling origingrid_plan.]",
"inputSchema": {
"properties": {
"limit": {
"default": 5,
"type": "integer"
},
"source_id": {
"type": "string"
}
},
"required": [
"source_id"
],
"type": "object"
},
"name": "origingrid_search_similar",
"outputSchema": null
},
{
"description": "Get OriginGrid registry statistics",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "origingrid_stats",
"outputSchema": {
"properties": {
"total_contributions": {
"type": "integer"
},
"total_searches": {
"type": "integer"
},
"total_sources": {
"type": "integer"
},
"total_users": {
"type": "integer"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:bab7f14b544aded4cdca68cd085fc428e08a5702867f24774296db03eaa9051d | sha256sum