{"id":"59319a5b-5248-401a-8bc2-2515b668d3a1","entityType":"agent","slug":"clawhub-chriscarrotlabs-3gpp-scout","name":"3GPP Scout","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chriscarrotlabs-3gpp-scout","canonicalPath":"/agent/clawhub-chriscarrotlabs-3gpp-scout","generatedAt":"2026-10-11T17:44:14.263Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T13:58:42.402Z","emptyReason":null},"description":"Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/. Skill: 3GPP Scout Owner: chriscarrotlabs Summary: Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/. Tags: latest:1.2.0 Version history: v1.2.0 | 2026-08-28T23:29:02.136Z | user 3gpp-scout v1.","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s170by9cps1169bfd724baghss84wy1x:3gpp-scout","sourceUrl":"https://clawhub.ai/chriscarrotlabs/3gpp-scout","homepage":"https://clawhub.ai/chriscarrotlabs/skills/3gpp-scout","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/chriscarrotlabs/3gpp-scout","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/chriscarrotlabs/skills/3gpp-scout","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revi"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:58:42.402Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:58:42.402Z","emptyReason":null},"stars":null,"forks":null,"downloads":1053,"packageName":null,"latestVersion":"1.2.0","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:58:42.343Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T13:58:42.402Z","lastCrawledAt":"2026-10-11T13:58:42.343Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T13:58:42.343Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.0","createdAt":"2026-08-28T23:29:02.136Z","changelog":"3gpp-scout v1.2.0 - Expanded index: Now covers Rel-15 through Rel-20 and 8,700+ document versions (~2.6M+ vectors). - Added deduplication: Text and image search endpoints now support deduplication across releases/versions (with an also_in field). - Usage & quota updates: Monthly request limits clarified for all access methods; errors on quota exhaustion now provide detailed, machine-readable responses. - Enhanced MCP support: Instructions and endpoints updated for OAuth 2.1 and hosted MCP integration. - Updated skill documentation and removed the redundant skill-card.md file. - General improvements to search parameter options and result metadata.","fileCount":3,"zipByteSize":6963},{"version":"1.0.2","createdAt":"2026-04-15T22:58:46.069Z","changelog":"Version 1.0.2 - Updated environment variable for API key from THREEGPP_SCOUT_API_KEY to SCOUT_API_KEY. - Added OpenClaw skill metadata specifying required environment variable and its preferred usage. - Updated authentication instructions to include methods for setting the API key via environment variable or OpenClaw config. - No functional or endpoint changes detected.","fileCount":3,"zipByteSize":5662},{"version":"1.0.1","createdAt":"2026-04-15T22:37:10.639Z","changelog":"- Added full provider disclosure (Carrot Labs), pricing transparency (paid API with free starter credits for new accounts), declared credential (THREEGPP_SCOUT_API_KEY env var), and links to homepage, terms, and privacy policy - Synced endpoint docs with latest API (added text_match_threshold, image_match_threshold, section_token_count) and added a Data & Privacy section","fileCount":2,"zipByteSize":4246},{"version":"1.0.0","createdAt":"2026-04-15T22:21:58.696Z","changelog":"Initial release of 3gpp-scout agent skill. - Provides semantic search over 3GPP technical specifications via the 3GPP Scout API. - Supports text, image, and combined (text + image) search endpoints. - Enables filtering by release, document number, series, document type, and section. - Additional endpoints to list documents, fetch section contents, retrieve document TOCs, and access extracted images. - Corpus includes major 3GPP releases such as Rel-15 and Rel-19.","fileCount":2,"zipByteSize":3564}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170by9cps1169bfd724baghss84wy1x:3gpp-scout","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T17:44:14.261Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chriscarrotlabs-3gpp-scout/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T13:58:42.402Z","emptyReason":null},"readme":"Skill: 3GPP Scout\n\nOwner: chriscarrotlabs\n\nSummary: Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/.\n\nTags: latest:1.2.0\n\nVersion history:\n\nv1.2.0 | 2026-08-28T23:29:02.136Z | user\n\n3gpp-scout v1.2.0\n\n- Expanded index: Now covers Rel-15 through Rel-20 and 8,700+ document versions (~2.6M+ vectors).\n- Added deduplication: Text and image search endpoints now support deduplication across releases/versions (with an also_in field).\n- Usage & quota updates: Monthly request limits clarified for all access methods; errors on quota exhaustion now provide detailed, machine-readable responses.\n- Enhanced MCP support: Instructions and endpoints updated for OAuth 2.1 and hosted MCP integration.\n- Updated skill documentation and removed the redundant skill-card.md file.\n- General improvements to search parameter options and result metadata.\n\nv1.0.2 | 2026-04-15T22:58:46.069Z | user\n\nVersion 1.0.2\n\n- Updated environment variable for API key from THREEGPP_SCOUT_API_KEY to SCOUT_API_KEY.\n- Added OpenClaw skill metadata specifying required environment variable and its preferred usage.\n- Updated authentication instructions to include methods for setting the API key via environment variable or OpenClaw config.\n- No functional or endpoint changes detected.\n\nv1.0.1 | 2026-04-15T22:37:10.639Z | user\n\n- Added full provider disclosure (Carrot Labs), pricing transparency (paid API with free starter credits for new accounts), declared credential (THREEGPP_SCOUT_API_KEY env var), and links to homepage, terms, and privacy policy\n- Synced endpoint docs with latest API (added text_match_threshold, image_match_threshold, section_token_count) and added a Data & Privacy section\n\nv1.0.0 | 2026-04-15T22:21:58.696Z | auto\n\nInitial release of 3gpp-scout agent skill.\n\n- Provides semantic search over 3GPP technical specifications via the 3GPP Scout API.\n- Supports text, image, and combined (text + image) search endpoints.\n- Enables filtering by release, document number, series, document type, and section.\n- Additional endpoints to list documents, fetch section contents, retrieve document TOCs, and access extracted images.\n- Corpus includes major 3GPP releases such as Rel-15 and Rel-19.\n\nArchive index:\n\nArchive v1.2.0: 3 files, 6963 bytes\n\nFiles: skill-card.md (2175b), SKILL.md (16137b), _meta.json (129b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: 3gpp-scout\ndescription: Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/.\nversion: 1.2.0\nhomepage: https://3gppscout.com\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SCOUT_API_KEY\n    primaryEnv: SCOUT_API_KEY\n---\n\n# 3GPP Scout API — Agent Skill Guide\n\nYou have access to the 3GPP Scout API, a semantic search engine over\n3GPP technical specifications. Use it to find specific information\nin 3GPP standards documents (TS and TR series).\n\n## Provider & Pricing\n\n**Provider:** [Carrot Labs](https://carrotlabs.ai)\n**Homepage:** [3gppscout.com](https://3gppscout.com)\n**Dashboard:** [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n**API Docs:** [api.3gppscout.com/docs](https://api.3gppscout.com/docs)\n**Terms of Service:** [3gppscout.com/terms](https://3gppscout.com/terms)\n**Privacy Policy:** [3gppscout.com/privacy](https://3gppscout.com/privacy)\n\nDirect REST, MCP, and BYOK hosted-chat retrieval share a monthly request\nallowance. The **Explorer** plan includes 150 requests per UTC calendar month.\n**Founding Engineer** includes 1,000 requests per calendar month for\n**$8/month**. Enterprise limits follow the active agreement. View usage or upgrade at\n[dashboard.3gppscout.com/dashboard/billing](https://dashboard.3gppscout.com/dashboard/billing).\n\n## Base URL\n\n```\nhttps://api.3gppscout.com\n```\n\n## Authentication\n\nAll search and document endpoints require a Bearer token (API key).\n\n**How to get an API key:**\n1. Sign up or log in at [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n2. Go to the **API Keys** page\n3. Create a new key — it will start with `sk-`\n\n**Set your API key** via environment variable:\n```\nexport SCOUT_API_KEY=\"sk-your-key-here\"\n```\nOr set `skills.\"3gpp-scout\".apiKey` / `skills.\"3gpp-scout\".env.SCOUT_API_KEY` in `~/.openclaw/openclaw.json`.\n\nThe key is included in every request as a Bearer token:\n```\nAuthorization: Bearer $SCOUT_API_KEY\n```\n\n## MCP Agent Setup\n\nFor Cursor, Claude, Codex, or another MCP client, fetch and follow:\n\n```\nhttps://api.3gppscout.com/agent-setup/prompt.md\n```\n\nThe hosted Streamable HTTP MCP URL is:\n\n```\nhttps://api.3gppscout.com/mcp/\n```\n\nMCP uses OAuth 2.1, so no Scout API key belongs in the MCP configuration. The\nfirst connection or tool call opens a browser for sign-in. After authorization,\nverify the connection by calling `list_documents` with `doc_number=\"38.331\"`\nand `release=\"Rel-19\"`; keep both filters so verification returns a small list.\n\n## Monthly Quota Exhaustion\n\nREST API keys, OAuth-authenticated MCP tools, and BYOK hosted-chat retrieval\nshare the same request allowance. Regular Scout-funded hosted chat uses\nprepaid credits instead. If a tool or endpoint returns HTTP `402`, inspect the error's\n`detail` object. The stable machine-readable code is\n`api_quota_exhausted`, and the response includes:\n\n- `current_plan`\n- `used`, `limit`, and `remaining`\n- `reset_at` as a UTC timestamp\n- `upgrade.plan` (`Founding Engineer`)\n- `upgrade.price` (`8 USD` per month)\n- `upgrade.requests_per_month` (`1000`)\n- `upgrade.url` (`https://dashboard.3gppscout.com/dashboard/billing`)\n\nDo not retry repeatedly while `remaining` is zero. Wait until `reset_at` or\npresent the absolute `upgrade.url` to the user. FastMCP-generated tools expose\nthe same FastAPI error payload.\n\n## Available Endpoints\n\n### POST /search/text\n\nSemantic search over specification text. This is your primary tool.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                                     |\n|------------------------|--------|---------|-------------------------------------------------|\n| query                  | string | —       | **Required.** Natural language search query      |\n| match_count            | int    | 30      | Candidate matches before reranking (1–200)       |\n| match_threshold        | float  | 0.0     | Minimum similarity score (0–1)                   |\n| rerank                 | bool   | true    | Rerank results for higher precision              |\n| rerank_top_k           | int    | 10      | Results to keep after reranking (1–50)           |\n| include_section_text   | bool   | true    | Include the full parent section text             |\n| deduplicate            | bool   | true    | Collapse duplicates across releases/versions; see `also_in` |\n| filter_release         | string | null    | e.g. \"Rel-19\", \"Rel-15\"                         |\n| filter_doc_type        | string | null    | \"TS\" or \"TR\"                                     |\n| filter_doc_number      | string | null    | e.g. \"38.331\", \"23.501\"                          |\n| filter_series          | string | null    | e.g. \"38\" (NR/5G), \"23\" (system architecture)   |\n| filter_section_number  | string | null    | e.g. \"5.3.3\"                                     |\n\n**Response fields:**\n\n| Field           | Type          | Description                                |\n|-----------------|---------------|--------------------------------------------|\n| query           | string        | Echo of the search query                   |\n| results         | TextResult[]  | Matching text chunks                       |\n| total           | int           | Number of results returned                 |\n| reranked        | bool          | Whether reranking was applied              |\n| elapsed_ms      | float         | Server processing time in ms               |\n\nEach **TextResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number`, `section_title` — which section the chunk is from\n- `content` — the matched text chunk\n- `similarity` — semantic similarity score (0–1)\n- `relevance_score` — reranker score (0–1), present when reranked\n- `section_text` — full parent section text (when include_section_text=true)\n- `section_token_count` — token count of the parent section\n- `also_in` — when deduplicate is true, other releases/versions that matched the same section (each entry has `release`, `version`, and scores)\n\n### POST /search/images\n\nSemantic search over figures, diagrams, and tables in specifications.\n\n**Request body (JSON):**\n\n| Parameter          | Type   | Default | Description                            |\n|--------------------|--------|---------|----------------------------------------|\n| query              | string | —       | **Required.** Natural language query   |\n| match_count        | int    | 10      | Number of results (1–50)               |\n| match_threshold    | float  | 0.3     | Minimum similarity (0–1)               |\n| deduplicate        | bool   | true    | Collapse duplicates across releases/versions; see `also_in` |\n| filter_release     | string | null    | e.g. \"Rel-19\"                          |\n| filter_doc_number  | string | null    | e.g. \"38.300\"                          |\n| filter_series      | string | null    | e.g. \"38\"                              |\n\nEach **ImageResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number` — which section the image is in\n- `caption` — figure/table caption\n- `context_before`, `context_after` — surrounding text\n- `image_path` — path to the image file\n- `similarity` — semantic similarity score\n- `also_in` — when deduplicate is true, other releases/versions for the same figure (each entry has `release`, `version`, and `similarity`)\n\n### POST /search/combined\n\nText + image search in a single request. Useful for broad questions where\nboth text passages and diagrams are relevant.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                               |\n|------------------------|--------|---------|-------------------------------------------|\n| query                  | string | —       | **Required.** Natural language query       |\n| text_match_count       | int    | 30      | Text candidates before reranking (1–200)   |\n| text_match_threshold   | float  | 0.0     | Text similarity threshold (0–1)            |\n| rerank                 | bool   | true    | Rerank text results                        |\n| rerank_top_k           | int    | 10      | Text results after reranking (1–50)        |\n| include_section_text   | bool   | true    | Include full parent section text           |\n| image_match_count      | int    | 5       | Image results to return (1–50)             |\n| image_match_threshold  | float  | 0.0     | Image similarity threshold (0–1)           |\n| filter_release         | string | null    | Filter both searches by release            |\n| filter_doc_type        | string | null    | Filter text search by doc type             |\n| filter_doc_number      | string | null    | Filter both searches by document           |\n| filter_series          | string | null    | Filter both searches by series             |\n| filter_section_number  | string | null    | Filter text search by section              |\n\n**Response** has `text_results` (TextResult[]) and `image_results` (ImageResult[]).\n\n### GET /documents\n\nList available 3GPP documents with metadata. Use filters to check if a specific\ndocument or release is indexed — this is fast (1-2 lookups). Without filters\nreturns all ~3,200 documents which is slower.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                                        |\n|-------------|--------|---------|----------------------------------------------------|\n| doc_number  | string | null    | Filter by document number, e.g. \"38.811\". **Recommended.** |\n| release     | string | null    | Filter by release, e.g. \"Rel-19\"                   |\n| series      | string | null    | Filter by series, e.g. \"38\"                         |\n| doc_type    | string | null    | Filter by type: \"TS\" or \"TR\"                        |\n\n**Example:** Check if TR 38.811 has a Rel-19 version:\n```\nGET /documents?doc_number=38.811&release=Rel-19\n```\n\n### GET /documents/{document_id}\n\nGet a single document by its numeric ID.\n\n### GET /sections\n\nFetch full section text by section number.\n\n**Query parameters:**\n\n| Parameter       | Type   | Default | Description                                                                            |\n|-----------------|--------|---------|----------------------------------------------------------------------------------------|\n| section_number  | string | —       | **Required.** Numeric (`5.3.3`), trailing-letter (`5.3.1a`), or annex (`A.1`, `B.2.3`) |\n| doc_number      | string | —       | **Required.** e.g. `38.331`, `23.501`                                                  |\n| version         | string | null    | e.g. `19.1.0`                                                                          |\n| release         | string | null    | e.g. `Rel-19`                                                                          |\n| prefix          | bool   | false   | Match sub-sections too — works for numeric (`5.4` → `5.4.1`) and annex (`A` → `A.1`)  |\n\n**Behavior on no match:** Returns HTTP 200 with an empty list `[]`. If you get an empty\nlist, call `GET /sections/toc?doc_number=…` to see the document's actual section IDs —\nyour section number may use a different form (e.g. annex letter case, or the doc isn't indexed yet).\n\n### GET /sections/toc\n\nTable of contents for a document — section numbers and titles without full text.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                      |\n|-------------|--------|---------|----------------------------------|\n| doc_number  | string | —       | **Required.** e.g. \"38.321\"      |\n| version     | string | null    | e.g. \"19.1.0\"                    |\n\n### GET /images/{doc_number}/{version}/{image_index}\n\nFetch an extracted image (PNG) from a specification. No authentication required.\n\nThe `image_path` field in image search results (e.g. `/images/38.300/19.1.0/5`)\nmaps directly to this endpoint. Construct the full URL as:\n\n```\nhttps://api.3gppscout.com/images/{doc_number}/{version}/{image_index}\n```\n\nReturns `image/png` on success, 404 if the image doesn't exist.\n\n## Corpus Coverage\n\nThe index covers **the full published TS/TR corpus for Rel-15 through Rel-20**\n— not a Rel-15 + Rel-19 subset. Production currently serves 8,700+ document\nversions, 1.3M+ sections, 2.6M+ text vectors, and 225K+ image vectors.\n\nThe corpus is **kept current** with the 3GPP source: new and bumped\nspecifications are discovered, processed, and merged into the live search\nindex (incremental apply for spec updates; full Vertex rebuilds on a monthly\ncadence). Do not treat the index as frozen at an older release pair.\n\nThe `/sections` artifacts for the production corpus were refreshed after the\nannex-heading parser fix, so annex sections such as `A.1` are available via\n`GET /sections` when the caller provides `doc_number`.\n\nSeries 38 = NR/5G, 23 = system architecture, 24 = signaling protocols,\n36 = LTE, 33 = security, 29 = core network protocols.\n\n## Recommended Workflows\n\n### Finding specific technical details\n\n1. Use `POST /search/text` with a focused query and `rerank_top_k: 5`\n2. Read the `content` field for the matched chunk\n3. Read `section_text` for the full section context\n4. If you need the broader document structure, call `GET /sections/toc`\n   with the `doc_number` from the result\n\n### Exploring a specific document\n\n1. Get the table of contents: `GET /sections/toc?doc_number=38.331`\n2. Fetch a specific section: `GET /sections?section_number=5.3.3&doc_number=38.331`\n3. Annex sections work the same way: `GET /sections?section_number=A.1&doc_number=38.874`\n4. Use `prefix=true` to get a section and all its sub-sections\n\n### Broad topic research\n\n1. Use `POST /search/combined` to get both text and diagrams\n2. Use `filter_series` to narrow to a domain (e.g. \"38\" for NR)\n3. Increase `rerank_top_k` to 15–20 for more diverse results\n\n### Comparing across releases\n\n1. Search with `filter_release: \"Rel-15\"` for an earlier release\n2. Search again with `filter_release: \"Rel-20\"` (or another release) for a later version\n3. Compare the section text to see what changed\n\n## Tips for Best Results\n\n- **Always use reranking** (enabled by default). The `relevance_score` from\n  the reranker is a much better quality signal than raw `similarity`.\n- **Use filters to narrow scope.** If you know which spec you're looking for,\n  `filter_doc_number` dramatically improves result quality.\n- **Use `include_section_text: true`** (the default) to get the full parent\n  section. The `content` field is a chunk (~400-800 tokens), while\n  `section_text` gives the complete section for full context.\n- **Cite results precisely.** When presenting results to users, always include\n  the document number, section number, and release. For example:\n  \"According to TS 38.331 Section 5.3.3 (Rel-19)...\"\n- **Use the TOC endpoint** before diving deep into a document. It helps you\n  understand the document structure and find the right section numbers.\n- **Prefer `/search/text` over `/search/combined`** when you only need text.\n  Combined search is slower because it queries both indexes.\n- **Don't set `match_threshold` too high.** The default of 0.0 with reranking\n  gives the best results. The reranker handles quality filtering.\n- **Render images from search results.** Image search results include\n  `image_path` (e.g. `/images/38.300/19.1.0/5`). Construct the full URL:\n  `https://api.3gppscout.com{image_path}`. No authentication required.\n\n## Data & Privacy\n\nQueries you send to this API are processed by the 3GPP Scout service to\nperform vector search. The API does not store your queries beyond transient\nusage logs for billing. The corpus consists entirely of publicly available\n3GPP specifications — no proprietary or user-supplied data is stored in the\nsearch index. See [3gppscout.com/privacy](https://3gppscout.com/privacy)\nfor the full privacy policy.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7eb5zjmbdnrw2eq35twybv5h84xqt9\",\n  \"slug\": \"3gpp-scout\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1787959742136\n}\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\n3GPP Scout provides semantic search over text, diagrams, and figures in the 3GPP TS/TR corpus from Rel-15 through Rel-20 via REST and hosted MCP interfaces.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chriscarrotlabs](https://clawhub.ai/user/chriscarrotlabs)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, standards engineers, and agents use this skill to search 3GPP TS/TR specifications, retrieve relevant sections, inspect figures, and compare standards content across releases.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill directs agents to fetch a mutable remote agent-setup prompt that was not included for review.\n\nMitigation: Review the remote prompt separately and do not let it authorize extra tools, files, domains, credentials, or workflow changes beyond 3GPP search setup.\n\nRisk: Search queries are sent to the hosted 3GPP Scout service.\n\nMitigation: Use the skill only when sharing search queries with the service is acceptable, and avoid submitting confidential or sensitive material unless covered by the applicable agreement.\n\n## Reference(s):\n\n- [3GPP Scout Skill Page](https://clawhub.ai/chriscarrotlabs/skills/3gpp-scout)\n- [3GPP Scout Homepage](https://3gppscout.com)\n- [3GPP Scout API Docs](https://api.3gppscout.com/docs)\n- [3GPP Scout Hosted MCP](https://api.3gppscout.com/mcp/)\n- [3GPP Scout Agent Setup Prompt](https://api.3gppscout.com/agent-setup/prompt.md)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, configuration, shell commands, API calls, text]\n\n**Output Format:** [Markdown guidance with JSON request examples and shell environment snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [REST endpoints require SCOUT_API_KEY; hosted MCP uses OAuth 2.1.]\n\n## Skill Version(s):\n\n1.2.0 (source: SKILL.md frontmatter and release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.2: 3 files, 5662 bytes\n\nFiles: skill-card.md (2350b), SKILL.md (12900b), _meta.json (129b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: 3gpp-scout\ndescription: Semantic search over 3,200+ 3GPP technical specifications (TS/TR series, Rel-15 and Rel-19). Search text, diagrams, and figures across 904K+ vectors.\nversion: 1.0.2\nhomepage: https://3gppscout.com\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SCOUT_API_KEY\n    primaryEnv: SCOUT_API_KEY\n---\n\n# 3GPP Scout API — Agent Skill Guide\n\nYou have access to the 3GPP Scout API, a semantic search engine over\n3GPP technical specifications. Use it to find specific information\nin 3GPP standards documents (TS and TR series).\n\n## Provider & Pricing\n\n**Provider:** [Carrot Labs](https://carrotlabs.ai)\n**Homepage:** [3gppscout.com](https://3gppscout.com)\n**Dashboard:** [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n**API Docs:** [api.3gppscout.com/docs](https://api.3gppscout.com/docs)\n**Terms of Service:** [3gppscout.com/terms](https://3gppscout.com/terms)\n**Privacy Policy:** [3gppscout.com/privacy](https://3gppscout.com/privacy)\n\nThis is a **paid API service**. Each API call costs a small amount against\nyour account's credit balance. New accounts receive free starter credits\n(worth a few hundred API calls) so you can evaluate the service before\npurchasing additional credits. You can view your balance, usage history,\nand buy additional credits at [dashboard.3gppscout.com](https://dashboard.3gppscout.com).\n\n## Base URL\n\n```\nhttps://api.3gppscout.com\n```\n\n## Authentication\n\nAll search and document endpoints require a Bearer token (API key).\n\n**How to get an API key:**\n1. Sign up or log in at [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n2. Go to the **API Keys** page\n3. Create a new key — it will start with `sk-`\n\n**Set your API key** via environment variable:\n```\nexport SCOUT_API_KEY=\"sk-your-key-here\"\n```\nOr set `skills.\"3gpp-scout\".apiKey` / `skills.\"3gpp-scout\".env.SCOUT_API_KEY` in `~/.openclaw/openclaw.json`.\n\nThe key is included in every request as a Bearer token:\n```\nAuthorization: Bearer $SCOUT_API_KEY\n```\n\n## Available Endpoints\n\n### POST /search/text\n\nSemantic search over specification text. This is your primary tool.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                                     |\n|------------------------|--------|---------|-------------------------------------------------|\n| query                  | string | —       | **Required.** Natural language search query      |\n| match_count            | int    | 30      | Candidate matches before reranking (1–200)       |\n| match_threshold        | float  | 0.0     | Minimum similarity score (0–1)                   |\n| rerank                 | bool   | true    | Rerank results for higher precision              |\n| rerank_top_k           | int    | 10      | Results to keep after reranking (1–50)           |\n| include_section_text   | bool   | true    | Include the full parent section text             |\n| filter_release         | string | null    | e.g. \"Rel-19\", \"Rel-15\"                         |\n| filter_doc_type        | string | null    | \"TS\" or \"TR\"                                     |\n| filter_doc_number      | string | null    | e.g. \"38.331\", \"23.501\"                          |\n| filter_series          | string | null    | e.g. \"38\" (NR/5G), \"23\" (system architecture)   |\n| filter_section_number  | string | null    | e.g. \"5.3.3\"                                     |\n\n**Response fields:**\n\n| Field           | Type          | Description                                |\n|-----------------|---------------|--------------------------------------------|\n| query           | string        | Echo of the search query                   |\n| results         | TextResult[]  | Matching text chunks                       |\n| total           | int           | Number of results returned                 |\n| reranked        | bool          | Whether reranking was applied              |\n| elapsed_ms      | float         | Server processing time in ms               |\n\nEach **TextResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number`, `section_title` — which section the chunk is from\n- `content` — the matched text chunk\n- `similarity` — semantic similarity score (0–1)\n- `relevance_score` — reranker score (0–1), present when reranked\n- `section_text` — full parent section text (when include_section_text=true)\n- `section_token_count` — token count of the parent section\n\n### POST /search/images\n\nSemantic search over figures, diagrams, and tables in specifications.\n\n**Request body (JSON):**\n\n| Parameter          | Type   | Default | Description                            |\n|--------------------|--------|---------|----------------------------------------|\n| query              | string | —       | **Required.** Natural language query   |\n| match_count        | int    | 10      | Number of results (1–50)               |\n| match_threshold    | float  | 0.3     | Minimum similarity (0–1)               |\n| filter_release     | string | null    | e.g. \"Rel-19\"                          |\n| filter_doc_number  | string | null    | e.g. \"38.300\"                          |\n| filter_series      | string | null    | e.g. \"38\"                              |\n\nEach **ImageResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number` — which section the image is in\n- `caption` — figure/table caption\n- `context_before`, `context_after` — surrounding text\n- `image_path` — path to the image file\n- `similarity` — semantic similarity score\n\n### POST /search/combined\n\nText + image search in a single request. Useful for broad questions where\nboth text passages and diagrams are relevant.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                               |\n|------------------------|--------|---------|-------------------------------------------|\n| query                  | string | —       | **Required.** Natural language query       |\n| text_match_count       | int    | 30      | Text candidates before reranking (1–200)   |\n| text_match_threshold   | float  | 0.0     | Text similarity threshold (0–1)            |\n| rerank                 | bool   | true    | Rerank text results                        |\n| rerank_top_k           | int    | 10      | Text results after reranking (1–50)        |\n| include_section_text   | bool   | true    | Include full parent section text           |\n| image_match_count      | int    | 5       | Image results to return (1–50)             |\n| image_match_threshold  | float  | 0.0     | Image similarity threshold (0–1)           |\n| filter_release         | string | null    | Filter both searches by release            |\n| filter_doc_type        | string | null    | Filter text search by doc type             |\n| filter_doc_number      | string | null    | Filter both searches by document           |\n| filter_series          | string | null    | Filter both searches by series             |\n| filter_section_number  | string | null    | Filter text search by section              |\n\n**Response** has `text_results` (TextResult[]) and `image_results` (ImageResult[]).\n\n### GET /documents\n\nList available 3GPP documents with metadata. Use filters to check if a specific\ndocument or release is indexed — this is fast (1-2 lookups). Without filters\nreturns all ~3,200 documents which is slower.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                                        |\n|-------------|--------|---------|----------------------------------------------------|\n| doc_number  | string | null    | Filter by document number, e.g. \"38.811\". **Recommended.** |\n| release     | string | null    | Filter by release, e.g. \"Rel-19\"                   |\n| series      | string | null    | Filter by series, e.g. \"38\"                         |\n| doc_type    | string | null    | Filter by type: \"TS\" or \"TR\"                        |\n\n**Example:** Check if TR 38.811 has a Rel-19 version:\n```\nGET /documents?doc_number=38.811&release=Rel-19\n```\n\n### GET /documents/{document_id}\n\nGet a single document by its numeric ID.\n\n### GET /sections\n\nFetch full section text by section number.\n\n**Query parameters:**\n\n| Parameter       | Type   | Default | Description                                      |\n|-----------------|--------|---------|--------------------------------------------------|\n| section_number  | string | —       | **Required.** e.g. \"5.3.3\"                        |\n| doc_number      | string | null    | Document number — always provide this              |\n| version         | string | null    | e.g. \"19.1.0\"                                     |\n| release         | string | null    | e.g. \"Rel-19\"                                     |\n| prefix          | bool   | false   | Match sub-sections too (e.g. \"5.4\" gets \"5.4.1\") |\n\n### GET /sections/toc\n\nTable of contents for a document — section numbers and titles without full text.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                      |\n|-------------|--------|---------|----------------------------------|\n| doc_number  | string | —       | **Required.** e.g. \"38.321\"      |\n| version     | string | null    | e.g. \"19.1.0\"                    |\n\n### GET /images/{doc_number}/{version}/{image_index}\n\nFetch an extracted image (PNG) from a specification. No authentication required.\n\nThe `image_path` field in image search results (e.g. `/images/38.300/19.1.0/5`)\nmaps directly to this endpoint. Construct the full URL as:\n\n```\nhttps://api.3gppscout.com/images/{doc_number}/{version}/{image_index}\n```\n\nReturns `image/png` on success, 404 if the image doesn't exist.\n\n## Corpus Coverage\n\nThe index currently covers:\n- **Rel-15** — 1,493 documents, 195K sections\n- **Rel-19** — 1,789 documents, 291K sections\n- **Total** — 3,282 documents, 486K sections\n\nSeries 38 = NR/5G, 23 = system architecture, 24 = signaling protocols,\n36 = LTE, 33 = security, 29 = core network protocols.\n\n## Recommended Workflows\n\n### Finding specific technical details\n\n1. Use `POST /search/text` with a focused query and `rerank_top_k: 5`\n2. Read the `content` field for the matched chunk\n3. Read `section_text` for the full section context\n4. If you need the broader document structure, call `GET /sections/toc`\n   with the `doc_number` from the result\n\n### Exploring a specific document\n\n1. Get the table of contents: `GET /sections/toc?doc_number=38.331`\n2. Fetch a specific section: `GET /sections?section_number=5.3.3&doc_number=38.331`\n3. Use `prefix=true` to get a section and all its sub-sections\n\n### Broad topic research\n\n1. Use `POST /search/combined` to get both text and diagrams\n2. Use `filter_series` to narrow to a domain (e.g. \"38\" for NR)\n3. Increase `rerank_top_k` to 15–20 for more diverse results\n\n### Comparing across releases\n\n1. Search with `filter_release: \"Rel-15\"` for the original version\n2. Search again with `filter_release: \"Rel-19\"` for the latest\n3. Compare the section text to see what changed\n\n## Tips for Best Results\n\n- **Always use reranking** (enabled by default). The `relevance_score` from\n  the reranker is a much better quality signal than raw `similarity`.\n- **Use filters to narrow scope.** If you know which spec you're looking for,\n  `filter_doc_number` dramatically improves result quality.\n- **Use `include_section_text: true`** (the default) to get the full parent\n  section. The `content` field is a chunk (~400-800 tokens), while\n  `section_text` gives the complete section for full context.\n- **Cite results precisely.** When presenting results to users, always include\n  the document number, section number, and release. For example:\n  \"According to TS 38.331 Section 5.3.3 (Rel-19)...\"\n- **Use the TOC endpoint** before diving deep into a document. It helps you\n  understand the document structure and find the right section numbers.\n- **Prefer `/search/text` over `/search/combined`** when you only need text.\n  Combined search is slower because it queries both indexes.\n- **Don't set `match_threshold` too high.** The default of 0.0 with reranking\n  gives the best results. The reranker handles quality filtering.\n- **Render images from search results.** Image search results include\n  `image_path` (e.g. `/images/38.300/19.1.0/5`). Construct the full URL:\n  `https://api.3gppscout.com{image_path}`. No authentication required.\n\n## Data & Privacy\n\nQueries you send to this API are processed by the 3GPP Scout service to\nperform vector search. The API does not store your queries beyond transient\nusage logs for billing. The corpus consists entirely of publicly available\n3GPP specifications — no proprietary or user-supplied data is stored in the\nsearch index. See [3gppscout.com/privacy](https://3gppscout.com/privacy)\nfor the full privacy policy.\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7eb5zjmbdnrw2eq35twybv5h84xqt9\",\n  \"slug\": \"3gpp-scout\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1776293926069\n}\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nSemantic search over 3,200+ 3GPP technical specifications (TS/TR series, Rel-15 and Rel-19). Search text, diagrams, and figures across 904K+ vectors. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chriscarrotlabs](https://clawhub.ai/user/chriscarrotlabs) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, standards researchers, and telecom engineers use this skill to search 3GPP TS and TR documents, inspect sections, retrieve figures, and compare information across releases. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires an API key for authenticated 3GPP Scout endpoints. <br>\nMitigation: Store SCOUT_API_KEY in the environment or OpenClaw configuration and avoid exposing it in prompts, logs, or shared outputs. <br>\nRisk: The service is paid, so repeated API calls can consume account credits. <br>\nMitigation: Use filters, document lookups, and focused search parameters before broad searches to control usage. <br>\nRisk: Search results can omit relevant standards context or produce incomplete comparisons across releases. <br>\nMitigation: Cite document number, section number, and release, and use section text or table-of-contents endpoints to verify important claims. <br>\n\n\n## Reference(s): <br>\n- [ClawHub 3GPP Scout package page](https://clawhub.ai/chriscarrotlabs/3gpp-scout) <br>\n- [3GPP Scout homepage](https://3gppscout.com) <br>\n- [3GPP Scout API documentation](https://api.3gppscout.com/docs) <br>\n- [3GPP Scout dashboard](https://dashboard.3gppscout.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, api calls, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with JSON API request and response details] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires SCOUT_API_KEY for authenticated search and document endpoints.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.1: 2 files, 4246 bytes\n\nFiles: SKILL.md (12448b), _meta.json (129b)\n\nFile v1.0.1:SKILL.md\n\n# 3GPP Scout API — Agent Skill Guide\n\nYou have access to the 3GPP Scout API, a semantic search engine over\n3GPP technical specifications. Use it to find specific information\nin 3GPP standards documents (TS and TR series).\n\n## Provider & Pricing\n\n**Provider:** [Carrot Labs](https://carrotlabs.ai)\n**Homepage:** [3gppscout.com](https://3gppscout.com)\n**Dashboard:** [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n**API Docs:** [api.3gppscout.com/docs](https://api.3gppscout.com/docs)\n**Terms of Service:** [3gppscout.com/terms](https://3gppscout.com/terms)\n**Privacy Policy:** [3gppscout.com/privacy](https://3gppscout.com/privacy)\n\nThis is a **paid API service**. Each API call costs a small amount against\nyour account's credit balance. New accounts receive free starter credits\n(worth a few hundred API calls) so you can evaluate the service before\npurchasing additional credits. You can view your balance, usage history,\nand buy additional credits at [dashboard.3gppscout.com](https://dashboard.3gppscout.com).\n\n## Base URL\n\n```\nhttps://api.3gppscout.com\n```\n\n## Authentication\n\nAll search and document endpoints require a Bearer token (API key).\n\n**How to get an API key:**\n1. Sign up or log in at [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n2. Go to the **API Keys** page\n3. Create a new key — it will start with `sk-`\n\n**Required environment variable:**\n\n```\nTHREEGPP_SCOUT_API_KEY=sk-your-key-here\n```\n\nInclude the key in every request as a Bearer token:\n\n```\nAuthorization: Bearer $THREEGPP_SCOUT_API_KEY\n```\n\n## Available Endpoints\n\n### POST /search/text\n\nSemantic search over specification text. This is your primary tool.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                                     |\n|------------------------|--------|---------|-------------------------------------------------|\n| query                  | string | —       | **Required.** Natural language search query      |\n| match_count            | int    | 30      | Candidate matches before reranking (1–200)       |\n| match_threshold        | float  | 0.0     | Minimum similarity score (0–1)                   |\n| rerank                 | bool   | true    | Rerank results for higher precision              |\n| rerank_top_k           | int    | 10      | Results to keep after reranking (1–50)           |\n| include_section_text   | bool   | true    | Include the full parent section text             |\n| filter_release         | string | null    | e.g. \"Rel-19\", \"Rel-15\"                         |\n| filter_doc_type        | string | null    | \"TS\" or \"TR\"                                     |\n| filter_doc_number      | string | null    | e.g. \"38.331\", \"23.501\"                          |\n| filter_series          | string | null    | e.g. \"38\" (NR/5G), \"23\" (system architecture)   |\n| filter_section_number  | string | null    | e.g. \"5.3.3\"                                     |\n\n**Response fields:**\n\n| Field           | Type          | Description                                |\n|-----------------|---------------|--------------------------------------------|\n| query           | string        | Echo of the search query                   |\n| results         | TextResult[]  | Matching text chunks                       |\n| total           | int           | Number of results returned                 |\n| reranked        | bool          | Whether reranking was applied              |\n| elapsed_ms      | float         | Server processing time in ms               |\n\nEach **TextResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number`, `section_title` — which section the chunk is from\n- `content` — the matched text chunk\n- `similarity` — semantic similarity score (0–1)\n- `relevance_score` — reranker score (0–1), present when reranked\n- `section_text` — full parent section text (when include_section_text=true)\n- `section_token_count` — token count of the parent section\n\n### POST /search/images\n\nSemantic search over figures, diagrams, and tables in specifications.\n\n**Request body (JSON):**\n\n| Parameter          | Type   | Default | Description                            |\n|--------------------|--------|---------|----------------------------------------|\n| query              | string | —       | **Required.** Natural language query   |\n| match_count        | int    | 10      | Number of results (1–50)               |\n| match_threshold    | float  | 0.3     | Minimum similarity (0–1)               |\n| filter_release     | string | null    | e.g. \"Rel-19\"                          |\n| filter_doc_number  | string | null    | e.g. \"38.300\"                          |\n| filter_series      | string | null    | e.g. \"38\"                              |\n\nEach **ImageResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number` — which section the image is in\n- `caption` — figure/table caption\n- `context_before`, `context_after` — surrounding text\n- `image_path` — path to the image file\n- `similarity` — semantic similarity score\n\n### POST /search/combined\n\nText + image search in a single request. Useful for broad questions where\nboth text passages and diagrams are relevant.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                               |\n|------------------------|--------|---------|-------------------------------------------|\n| query                  | string | —       | **Required.** Natural language query       |\n| text_match_count       | int    | 30      | Text candidates before reranking (1–200)   |\n| text_match_threshold   | float  | 0.0     | Text similarity threshold (0–1)            |\n| rerank                 | bool   | true    | Rerank text results                        |\n| rerank_top_k           | int    | 10      | Text results after reranking (1–50)        |\n| include_section_text   | bool   | true    | Include full parent section text           |\n| image_match_count      | int    | 5       | Image results to return (1–50)             |\n| image_match_threshold  | float  | 0.0     | Image similarity threshold (0–1)           |\n| filter_release         | string | null    | Filter both searches by release            |\n| filter_doc_type        | string | null    | Filter text search by doc type             |\n| filter_doc_number      | string | null    | Filter both searches by document           |\n| filter_series          | string | null    | Filter both searches by series             |\n| filter_section_number  | string | null    | Filter text search by section              |\n\n**Response** has `text_results` (TextResult[]) and `image_results` (ImageResult[]).\n\n### GET /documents\n\nList available 3GPP documents with metadata. Use filters to check if a specific\ndocument or release is indexed — this is fast (1-2 lookups). Without filters\nreturns all ~3,200 documents which is slower.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                                        |\n|-------------|--------|---------|----------------------------------------------------|\n| doc_number  | string | null    | Filter by document number, e.g. \"38.811\". **Recommended.** |\n| release     | string | null    | Filter by release, e.g. \"Rel-19\"                   |\n| series      | string | null    | Filter by series, e.g. \"38\"                         |\n| doc_type    | string | null    | Filter by type: \"TS\" or \"TR\"                        |\n\n**Example:** Check if TR 38.811 has a Rel-19 version:\n```\nGET /documents?doc_number=38.811&release=Rel-19\n```\n\n### GET /documents/{document_id}\n\nGet a single document by its numeric ID.\n\n### GET /sections\n\nFetch full section text by section number.\n\n**Query parameters:**\n\n| Parameter       | Type   | Default | Description                                      |\n|-----------------|--------|---------|--------------------------------------------------|\n| section_number  | string | —       | **Required.** e.g. \"5.3.3\"                        |\n| doc_number      | string | null    | Document number — always provide this              |\n| version         | string | null    | e.g. \"19.1.0\"                                     |\n| release         | string | null    | e.g. \"Rel-19\"                                     |\n| prefix          | bool   | false   | Match sub-sections too (e.g. \"5.4\" gets \"5.4.1\") |\n\n### GET /sections/toc\n\nTable of contents for a document — section numbers and titles without full text.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                      |\n|-------------|--------|---------|----------------------------------|\n| doc_number  | string | —       | **Required.** e.g. \"38.321\"      |\n| version     | string | null    | e.g. \"19.1.0\"                    |\n\n### GET /images/{doc_number}/{version}/{image_index}\n\nFetch an extracted image (PNG) from a specification. No authentication required.\n\nThe `image_path` field in image search results (e.g. `/images/38.300/19.1.0/5`)\nmaps directly to this endpoint. Construct the full URL as:\n\n```\nhttps://api.3gppscout.com/images/{doc_number}/{version}/{image_index}\n```\n\nReturns `image/png` on success, 404 if the image doesn't exist.\n\n## Corpus Coverage\n\nThe index currently covers:\n- **Rel-15** — 1,493 documents, 195K sections\n- **Rel-19** — 1,789 documents, 291K sections\n- **Total** — 3,282 documents, 486K sections\n\nSeries 38 = NR/5G, 23 = system architecture, 24 = signaling protocols,\n36 = LTE, 33 = security, 29 = core network protocols.\n\n## Recommended Workflows\n\n### Finding specific technical details\n\n1. Use `POST /search/text` with a focused query and `rerank_top_k: 5`\n2. Read the `content` field for the matched chunk\n3. Read `section_text` for the full section context\n4. If you need the broader document structure, call `GET /sections/toc`\n   with the `doc_number` from the result\n\n### Exploring a specific document\n\n1. Get the table of contents: `GET /sections/toc?doc_number=38.331`\n2. Fetch a specific section: `GET /sections?section_number=5.3.3&doc_number=38.331`\n3. Use `prefix=true` to get a section and all its sub-sections\n\n### Broad topic research\n\n1. Use `POST /search/combined` to get both text and diagrams\n2. Use `filter_series` to narrow to a domain (e.g. \"38\" for NR)\n3. Increase `rerank_top_k` to 15–20 for more diverse results\n\n### Comparing across releases\n\n1. Search with `filter_release: \"Rel-15\"` for the original version\n2. Search again with `filter_release: \"Rel-19\"` for the latest\n3. Compare the section text to see what changed\n\n## Tips for Best Results\n\n- **Always use reranking** (enabled by default). The `relevance_score` from\n  the reranker is a much better quality signal than raw `similarity`.\n- **Use filters to narrow scope.** If you know which spec you're looking for,\n  `filter_doc_number` dramatically improves result quality.\n- **Use `include_section_text: true`** (the default) to get the full parent\n  section. The `content` field is a chunk (~400-800 tokens), while\n  `section_text` gives the complete section for full context.\n- **Cite results precisely.** When presenting results to users, always include\n  the document number, section number, and release. For example:\n  \"According to TS 38.331 Section 5.3.3 (Rel-19)...\"\n- **Use the TOC endpoint** before diving deep into a document. It helps you\n  understand the document structure and find the right section numbers.\n- **Prefer `/search/text` over `/search/combined`** when you only need text.\n  Combined search is slower because it queries both indexes.\n- **Don't set `match_threshold` too high.** The default of 0.0 with reranking\n  gives the best results. The reranker handles quality filtering.\n- **Render images from search results.** Image search results include\n  `image_path` (e.g. `/images/38.300/19.1.0/5`). Construct the full URL:\n  `https://api.3gppscout.com{image_path}`. No authentication required.\n\n## Data & Privacy\n\nQueries you send to this API are processed by the 3GPP Scout service to\nperform vector search. The API does not store your queries beyond transient\nusage logs for billing. The corpus consists entirely of publicly available\n3GPP specifications — no proprietary or user-supplied data is stored in the\nsearch index. See [3gppscout.com/privacy](https://3gppscout.com/privacy)\nfor the full privacy policy.\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7eb5zjmbdnrw2eq35twybv5h84xqt9\",\n  \"slug\": \"3gpp-scout\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1776292630639\n}\n\nArchive v1.0.0: 2 files, 3564 bytes\n\nFiles: SKILL.md (10632b), _meta.json (129b)\n\nFile v1.0.0:SKILL.md\n\n# 3GPP Scout API — Agent Skill Guide\n\nYou have access to the 3GPP Scout API, a semantic search engine over\n3GPP technical specifications. Use it to find specific information\nin 3GPP standards documents (TS and TR series).\n\n## Base URL\n\n```\nhttps://api.3gppscout.com\n```\n\n## Authentication\n\nAll requests require a Bearer token in the `Authorization` header:\n\n```\nAuthorization: Bearer YOUR_API_KEY\n```\n\n## Available Endpoints\n\n### POST /search/text\n\nSemantic search over specification text. This is your primary tool.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                                     |\n|------------------------|--------|---------|-------------------------------------------------|\n| query                  | string | —       | **Required.** Natural language search query      |\n| match_count            | int    | 30      | Candidate matches before reranking (1–200)       |\n| match_threshold        | float  | 0.0     | Minimum similarity score (0–1)                   |\n| rerank                 | bool   | true    | Rerank results for higher precision              |\n| rerank_top_k           | int    | 10      | Results to keep after reranking (1–50)           |\n| include_section_text   | bool   | true    | Include the full parent section text             |\n| filter_release         | string | null    | e.g. \"Rel-19\", \"Rel-15\"                         |\n| filter_doc_type        | string | null    | \"TS\" or \"TR\"                                     |\n| filter_doc_number      | string | null    | e.g. \"38.331\", \"23.501\"                          |\n| filter_series          | string | null    | e.g. \"38\" (NR/5G), \"23\" (system architecture)   |\n| filter_section_number  | string | null    | e.g. \"5.3.3\"                                     |\n\n**Response fields:**\n\n| Field           | Type          | Description                                |\n|-----------------|---------------|--------------------------------------------|\n| query           | string        | Echo of the search query                   |\n| results         | TextResult[]  | Matching text chunks                       |\n| total           | int           | Number of results returned                 |\n| reranked        | bool          | Whether reranking was applied              |\n| elapsed_ms      | float         | Server processing time in ms               |\n\nEach **TextResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number`, `section_title` — which section the chunk is from\n- `content` — the matched text chunk\n- `similarity` — semantic similarity score (0–1)\n- `relevance_score` — reranker score (0–1), present when reranked\n- `section_text` — full parent section text (when include_section_text=true)\n\n### POST /search/images\n\nSemantic search over figures, diagrams, and tables in specifications.\n\n**Request body (JSON):**\n\n| Parameter          | Type   | Default | Description                            |\n|--------------------|--------|---------|----------------------------------------|\n| query              | string | —       | **Required.** Natural language query   |\n| match_count        | int    | 10      | Number of results (1–50)               |\n| match_threshold    | float  | 0.3     | Minimum similarity (0–1)               |\n| filter_release     | string | null    | e.g. \"Rel-19\"                          |\n| filter_doc_number  | string | null    | e.g. \"38.300\"                          |\n| filter_series      | string | null    | e.g. \"38\"                              |\n\nEach **ImageResult** contains:\n- `doc_number`, `doc_type`, `version`, `release` — document metadata\n- `section_number` — which section the image is in\n- `caption` — figure/table caption\n- `context_before`, `context_after` — surrounding text\n- `image_path` — path to the image file\n- `similarity` — semantic similarity score\n\n### POST /search/combined\n\nText + image search in a single request. Useful for broad questions where\nboth text passages and diagrams are relevant.\n\n**Request body (JSON):**\n\n| Parameter              | Type   | Default | Description                               |\n|------------------------|--------|---------|-------------------------------------------|\n| query                  | string | —       | **Required.** Natural language query       |\n| text_match_count       | int    | 30      | Text candidates before reranking (1–200)   |\n| rerank                 | bool   | true    | Rerank text results                        |\n| rerank_top_k           | int    | 10      | Text results after reranking (1–50)        |\n| include_section_text   | bool   | true    | Include full parent section text           |\n| image_match_count      | int    | 5       | Image results to return (1–50)             |\n| filter_release         | string | null    | Filter both searches by release            |\n| filter_doc_type        | string | null    | Filter text search by doc type             |\n| filter_doc_number      | string | null    | Filter both searches by document           |\n| filter_series          | string | null    | Filter both searches by series             |\n| filter_section_number  | string | null    | Filter text search by section              |\n\n**Response** has `text_results` (TextResult[]) and `image_results` (ImageResult[]).\n\n### GET /documents\n\nList available 3GPP documents with metadata. Use filters to check if a specific\ndocument or release is indexed — this is fast (1-2 lookups). Without filters\nreturns all ~3,200 documents which is slower.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                                        |\n|-------------|--------|---------|----------------------------------------------------|\n| doc_number  | string | null    | Filter by document number, e.g. \"38.811\". **Recommended.** |\n| release     | string | null    | Filter by release, e.g. \"Rel-19\"                   |\n| series      | string | null    | Filter by series, e.g. \"38\"                         |\n| doc_type    | string | null    | Filter by type: \"TS\" or \"TR\"                        |\n\n**Example:** Check if TR 38.811 has a Rel-19 version:\n```\nGET /documents?doc_number=38.811&release=Rel-19\n```\n\n### GET /documents/{document_id}\n\nGet a single document by its numeric ID.\n\n### GET /sections\n\nFetch full section text by section number.\n\n**Query parameters:**\n\n| Parameter       | Type   | Default | Description                                      |\n|-----------------|--------|---------|--------------------------------------------------|\n| section_number  | string | —       | **Required.** e.g. \"5.3.3\"                        |\n| doc_number      | string | null    | Document number — always provide this              |\n| version         | string | null    | e.g. \"19.1.0\"                                     |\n| release         | string | null    | e.g. \"Rel-19\"                                     |\n| prefix          | bool   | false   | Match sub-sections too (e.g. \"5.4\" gets \"5.4.1\") |\n\n### GET /sections/toc\n\nTable of contents for a document — section numbers and titles without full text.\n\n**Query parameters:**\n\n| Parameter   | Type   | Default | Description                      |\n|-------------|--------|---------|----------------------------------|\n| doc_number  | string | —       | **Required.** e.g. \"38.321\"      |\n| version     | string | null    | e.g. \"19.1.0\"                    |\n\n### GET /images/{doc_number}/{version}/{image_index}\n\nFetch an extracted image (PNG) from a specification. No authentication required.\n\nThe `image_path` field in image search results (e.g. `/images/38.300/19.1.0/5`)\nmaps directly to this endpoint. Construct the full URL as:\n\n```\nhttps://api.3gppscout.com/images/{doc_number}/{version}/{image_index}\n```\n\nReturns `image/png` on success, 404 if the image doesn't exist.\n\n## Corpus Coverage\n\nThe index currently covers:\n- **Rel-15** — 1,493 documents, 195K sections\n- **Rel-19** — 1,789 documents, 291K sections\n- **Total** — 3,282 documents, 486K sections\n\nSeries 38 = NR/5G, 23 = system architecture, 24 = signaling protocols,\n36 = LTE, 33 = security, 29 = core network protocols.\n\n## Recommended Workflows\n\n### Finding specific technical details\n\n1. Use `POST /search/text` with a focused query and `rerank_top_k: 5`\n2. Read the `content` field for the matched chunk\n3. Read `section_text` for the full section context\n4. If you need the broader document structure, call `GET /sections/toc`\n   with the `doc_number` from the result\n\n### Exploring a specific document\n\n1. Get the table of contents: `GET /sections/toc?doc_number=38.331`\n2. Fetch a specific section: `GET /sections?section_number=5.3.3&doc_number=38.331`\n3. Use `prefix=true` to get a section and all its sub-sections\n\n### Broad topic research\n\n1. Use `POST /search/combined` to get both text and diagrams\n2. Use `filter_series` to narrow to a domain (e.g. \"38\" for NR)\n3. Increase `rerank_top_k` to 15–20 for more diverse results\n\n### Comparing across releases\n\n1. Search with `filter_release: \"Rel-15\"` for the original version\n2. Search again with `filter_release: \"Rel-19\"` for the latest\n3. Compare the section text to see what changed\n\n## Tips for Best Results\n\n- **Always use reranking** (enabled by default). The `relevance_score` from\n  the reranker is a much better quality signal than raw `similarity`.\n- **Use filters to narrow scope.** If you know which spec you're looking for,\n  `filter_doc_number` dramatically improves result quality.\n- **Use `include_section_text: true`** (the default) to get the full parent\n  section. The `content` field is a chunk (~400-800 tokens), while\n  `section_text` gives the complete section for full context.\n- **Cite results precisely.** When presenting results to users, always include\n  the document number, section number, and release. For example:\n  \"According to TS 38.331 Section 5.3.3 (Rel-19)...\"\n- **Use the TOC endpoint** before diving deep into a document. It helps you\n  understand the document structure and find the right section numbers.\n- **Prefer `/search/text` over `/search/combined`** when you only need text.\n  Combined search is slower because it queries both indexes.\n- **Don't set `match_threshold` too high.** The default of 0.0 with reranking\n  gives the best results. The reranker handles quality filtering.\n- **Render images from search results.** Image search results include\n  `image_path` (e.g. `/images/38.300/19.1.0/5`). Construct the full URL:\n  `https://api.3gppscout.com{image_path}`. No authentication required.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7eb5zjmbdnrw2eq35twybv5h84xqt9\",\n  \"slug\": \"3gpp-scout\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1776291718696\n}","readmeExcerpt":"Skill: 3GPP Scout Owner: chriscarrotlabs Summary: Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/. Tags: latest:1.2.0 Version history: v1.2.0 | 2026-08-28T23:29:02.136Z | user 3gpp-scout v1.","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"https://api.3gppscout.com"},{"language":"text","snippet":"export SCOUT_API_KEY=\"sk-your-key-here\""},{"language":"text","snippet":"Authorization: Bearer $SCOUT_API_KEY"},{"language":"text","snippet":"https://api.3gppscout.com/agent-setup/prompt.md"},{"language":"text","snippet":"https://api.3gppscout.com/mcp/"},{"language":"text","snippet":"GET /documents?doc_number=38.811&release=Rel-19"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: 3gpp-scout\ndescription: Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/.\nversion: 1.2.0\nhomepage: https://3gppscout.com\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SCOUT_API_KEY\n    primaryEnv: SCOUT_API_KEY\n---\n\n# 3GPP Scout API — Agent Skill Guide\n\nYou have access to the 3GPP Scout API, a semantic search engine over\n3GPP technical specifications. Use it to find specific information\nin 3GPP standards documents (TS and TR series).\n\n## Provider & Pricing\n\n**Provider:** [Carrot Labs](https://carrotlabs.ai)\n**Homepage:** [3gppscout.com](https://3gppscout.com)\n**Dashboard:** [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n**API Docs:** [api.3gppscout.com/docs](https://api.3gppscout.com/docs)\n**Terms of Service:** [3gppscout.com/terms](https://3gppscout.com/terms)\n**Privacy Policy:** [3gppscout.com/privacy](https://3gppscout.com/privacy)\n\nDirect REST, MCP, and BYOK hosted-chat retrieval share a monthly request\nallowance. The **Explorer** plan includes 150 requests per UTC calendar month.\n**Founding Engineer** includes 1,000 requests per calendar month for\n**$8/month**. Enterprise limits follow the active agreement. View usage or upgrade at\n[dashboard.3gppscout.com/dashboard/billing](https://dashboard.3gppscout.com/dashboard/billing).\n\n## Base URL\n\n```\nhttps://api.3gppscout.com\n```\n\n## Authentication\n\nAll search and document endpoints require a Bearer token (API key).\n\n**How to get an API key:**\n1. Sign up or log in at [dashboard.3gppscout.com](https://dashboard.3gppscout.com)\n2. Go to the **API Keys** page\n3. Create a new key — it will start with `sk-`\n\n**Set your API key** via environment variable:\n```\nexport SCOUT_API_KEY=\"sk-your-key-here\"\n```\nOr set `skills.\"3gpp-scout\".apiKey` / `skills.\"3gpp-scout\".env.SCOUT_API_KEY` in `~/.openclaw/openclaw.json`.\n\nThe key is included in every request as a Bearer token:\n```\nAuthorization: Bearer $SCOUT_API_KEY\n```\n\n## MCP Agent Setup\n\nFor Cursor, Claude, Codex, or another MCP client, fetch and follow:\n\n```\nhttps://api.3gppscout.com/agent-setup/prompt.md\n```\n\nThe hosted Streamable HTTP MCP URL is:\n\n```\nhttps://api.3gppscout.com/mcp/\n```\n\nMCP uses OAuth 2.1, so no Scout API key belongs in the MCP configuration. The\nfirst connection or tool call opens a browser for sign-in. After authorization,\nverify the connection by calling `list_documents` with `doc_number=\"38.331\"`\nand `release=\"Rel-19\"`; keep both filters so verification returns a small list.\n\n## Monthly Quota Exhaustion\n\nREST API keys, OAuth-authenticated MCP tools, and BYOK hosted-chat retrieval\nshare the same request allowance. Regular Scout-funded hosted chat uses\nprepaid credits instead. If a tool or endpoint returns HTTP `402`, inspect the error's\n`detail` object. The stable machine-readable c"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7eb5zjmbdnrw2eq35twybv5h84xqt9\",\n  \"slug\": \"3gpp-scout\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1787959742136\n}"},{"path":"skill-card.md","content":"## Description:\n\n3GPP Scout provides semantic search over text, diagrams, and figures in the 3GPP TS/TR corpus from Rel-15 through Rel-20 via REST and hosted MCP interfaces.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chriscarrotlabs](https://clawhub.ai/user/chriscarrotlabs)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, standards engineers, and agents use this skill to search 3GPP TS/TR specifications, retrieve relevant sections, inspect figures, and compare standards content across releases.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill directs agents to fetch a mutable remote agent-setup prompt that was not included for review.\n\nMitigation: Review the remote prompt separately and do not let it authorize extra tools, files, domains, credentials, or workflow changes beyond 3GPP search setup.\n\nRisk: Search queries are sent to the hosted 3GPP Scout service.\n\nMitigation: Use the skill only when sharing search queries with the service is acceptable, and avoid submitting confidential or sensitive material unless covered by the applicable agreement.\n\n## Reference(s):\n\n- [3GPP Scout Skill Page](https://clawhub.ai/chriscarrotlabs/skills/3gpp-scout)\n- [3GPP Scout Homepage](https://3gppscout.com)\n- [3GPP Scout API Docs](https://api.3gppscout.com/docs)\n- [3GPP Scout Hosted MCP](https://api.3gppscout.com/mcp/)\n- [3GPP Scout Agent Setup Prompt](https://api.3gppscout.com/agent-setup/prompt.md)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, configuration, shell commands, API calls, text]\n\n**Output Format:** [Markdown guidance with JSON request examples and shell environment snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [REST endpoints require SCOUT_API_KEY; hosted MCP uses OAuth 2.1.]\n\n## Skill Version(s):\n\n1.2.0 (source: SKILL.md frontmatter and release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/. Skill: 3GPP Scout Owner: chriscarrotlabs Summary: Semantic search over the full 3GPP TS/TR corpus (Rel-15 through Rel-20, 8,700+ document versions). The hosted index stays current as 3GPP publishes new and revised specs. Search text, diagrams, and figures across 2.6M+ text vectors. Hosted MCP at https://api.3gppscout.com/mcp/. Tags: latest:1.2.0 Version history: v1.2.0 | 2026-08-28T23:29:02.136Z | user 3gpp-scout v1.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1322,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T13:58:42.402Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T13:58:42.402Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:44:14.263Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}