Skip to main content

3gpp-scout

Semantic search over 3,200+ 3GPP technical specifications (TS/TR series, Rel-15 and Rel-19). Search text, diagrams, and figures across 904K+ vectors.

Source facts

Repository
RabbitAI-Lab/rabbit-plugins-upstream
Last source activity
July 26, 2026 at 20:50
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
4 files

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
name
3gpp-scout
description
Semantic search over 3,200+ 3GPP technical specifications (TS/TR series, Rel-15 and Rel-19). Search text, diagrams, and figures across 904K+ vectors.
version
1.0.2
homepage
https://3gppscout.com
metadata
{"openclaw":{"requires":{"env":"[Truncated]"},"primaryEnv":"SCOUT_API_KEY"}}
# 3GPP Scout API โ€” Agent Skill Guide You have access to the 3GPP Scout API, a semantic search engine over 3GPP technical specifications. Use it to find specific information in 3GPP standards documents (TS and TR series). ## Provider & Pricing **Provider:** [Carrot Labs](https://carrotlabs.ai) **Homepage:** [3gppscout.com](https://3gppscout.com) **Dashboard:** [dashboard.3gppscout.com](https://dashboard.3gppscout.com) **API Docs:** [api.3gppscout.com/docs](https://api.3gppscout.com/docs) **Terms of Service:** [3gppscout.com/terms](https://3gppscout.com/terms) **Privacy Policy:** [3gppscout.com/privacy](https://3gppscout.com/privacy) This is a **paid API service**. Each API call costs a small amount against your account's credit balance. New accounts receive free starter credits (worth a few hundred API calls) so you can evaluate the service before purchasing additional credits. You can view your balance, usage history, and buy additional credits at [dashboard.3gppscout.com](https://dashboard.3gppscout.com). ## Base URL ``` https://api.3gppscout.com ``` ## Authentication All search and document endpoints require a Bearer token (API key). **How to get an API key:** 1. Sign up or log in at [dashboard.3gppscout.com](https://dashboard.3gppscout.com) 2. Go to the **API Keys** page 3. Create a new key โ€” it will start with `sk-` **Set your API key** via environment variable: ``` export SCOUT_API_KEY="sk-your-key-here" ``` Or set `skills."3gpp-scout".apiKey` / `skills."3gpp-scout".env.SCOUT_API_KEY` in `~/.openclaw/openclaw.json`. The key is included in every request as a Bearer token: ``` Authorization: Bearer $SCOUT_API_KEY ``` ## Available Endpoints ### POST /search/text Semantic search over specification text. This is your primary tool. **Request body (JSON):** | Parameter | Type | Default | Description | |------------------------|--------|---------|-------------------------------------------------| | query | string | โ€” | **Required.** Natural language search query | | match_count | int | 30 | Candidate matches before reranking (1โ€“200) | | match_threshold | float | 0.0 | Minimum similarity score (0โ€“1) | | rerank | bool | true | Rerank results for higher precision | | rerank_top_k | int | 10 | Results to keep after reranking (1โ€“50) | | include_section_text | bool | true | Include the full parent section text | | filter_release | string | null | e.g. "Rel-19", "Rel-15" | | filter_doc_type | string | null | "TS" or "TR" | | filter_doc_number | string | null | e.g. "38.331", "23.501" | | filter_series | string | null | e.g. "38" (NR/5G), "23" (system architecture) | | filter_section_number | string | null | e.g. "5.3.3" | **Response fields:** | Field | Type | Description | |-----------------|---------------|--------------------------------------------| | query | string | Echo of the search query | | results | TextResult[] | Matching text chunks | | total | int | Number of results returned | | reranked | bool | Whether reranking was applied | | elapsed_ms | float | Server processing time in ms | Each **TextResult** contains: - `doc_number`, `doc_type`, `version`, `release` โ€” document metadata - `section_number`, `section_title` โ€” which section the chunk is from - `content` โ€” the matched text chunk - `similarity` โ€” semantic similarity score (0โ€“1) - `relevance_score` โ€” reranker score (0โ€“1), present when reranked - `section_text` โ€” full parent section text (when include_section_text=true) - `section_token_count` โ€” token count of the parent section ### POST /search/images Semantic search over figures, diagrams, and tables in specifications. **Request body (JSON):** | Parameter | Type | Default | Description | |--------------------|--------|---------|----------------------------------------| | query | string | โ€” | **Required.** Natural language query | | match_count | int | 10 | Number of results (1โ€“50) | | match_threshold | float | 0.3 | Minimum similarity (0โ€“1) | | filter_release | string | null | e.g. "Rel-19" | | filter_doc_number | string | null | e.g. "38.300" | | filter_series | string | null | e.g. "38" | Each **ImageResult** contains: - `doc_number`, `doc_type`, `version`, `release` โ€” document metadata - `section_number` โ€” which section the image is in - `caption` โ€” figure/table caption - `context_before`, `context_after` โ€” surrounding text - `image_path` โ€” path to the image file - `similarity` โ€” semantic similarity score ### POST /search/combined Text + image search in a single request. Useful for broad questions where both text passages and diagrams are relevant. **Request body (JSON):** | Parameter | Type | Default | Description | |------------------------|--------|---------|-------------------------------------------| | query | string | โ€” | **Required.** Natural language query | | text_match_count | int | 30 | Text candidates before reranking (1โ€“200) | | text_match_threshold | float | 0.0 | Text similarity threshold (0โ€“1) | | rerank | bool | true | Rerank text results | | rerank_top_k | int | 10 | Text results after reranking (1โ€“50) | | include_section_text | bool | true | Include full parent section text | | image_match_count | int | 5 | Image results to return (1โ€“50) | | image_match_threshold | float | 0.0 | Image similarity threshold (0โ€“1) | | filter_release | string | null | Filter both searches by release | | filter_doc_type | string | null | Filter text search by doc type | | filter_doc_number | string | null | Filter both searches by document | | filter_series | string | null | Filter both searches by series | | filter_section_number | string | null | Filter text search by section | **Response** has `text_results` (TextResult[]) and `image_results` (ImageResult[]). ### GET /documents List available 3GPP documents with metadata. Use filters to check if a specific document or release is indexed โ€” this is fast (1-2 lookups). Without filters returns all ~3,200 documents which is slower. **Query parameters:** | Parameter | Type | Default | Description | |-------------|--------|---------|----------------------------------------------------| | doc_number | string | null | Filter by document number, e.g. "38.811". **Recommended.** | | release | string | null | Filter by release, e.g. "Rel-19" | | series | string | null | Filter by series, e.g. "38" | | doc_type | string | null | Filter by type: "TS" or "TR" | **Example:** Check if TR 38.811 has a Rel-19 version: ``` GET /documents?doc_number=38.811&release=Rel-19 ``` ### GET /documents/{document_id} Get a single document by its numeric ID. ### GET /sections Fetch full section text by section number. **Query parameters:** | Parameter | Type | Default | Description | |-----------------|--------|---------|--------------------------------------------------| | section_number | string | โ€” | **Required.** e.g. "5.3.3" | | doc_number | string | null | Document number โ€” always provide this | | version | string | null | e.g. "19.1.0" | | release | string | null | e.g. "Rel-19" | | prefix | bool | false | Match sub-sections too (e.g. "5.4" gets "5.4.1") | ### GET /sections/toc Table of contents for a document โ€” section numbers and titles without full text. **Query parameters:** | Parameter | Type | Default | Description | |-------------|--------|---------|----------------------------------| | doc_number | string | โ€” | **Required.** e.g. "38.321" | | version | string | null | e.g. "19.1.0" | ### GET /images/{doc_number}/{version}/{image_index} Fetch an extracted image (PNG) from a specification. No authentication required. The `image_path` field in image search results (e.g. `/images/38.300/19.1.0/5`) maps directly to this endpoint. Construct the full URL as: ``` https://api.3gppscout.com/images/{doc_number}/{version}/{image_index} ``` Returns `image/png` on success, 404 if the image doesn't exist. ## Corpus Coverage The index currently covers: - **Rel-15** โ€” 1,493 documents, 195K sections - **Rel-19** โ€” 1,789 documents, 291K sections - **Total** โ€” 3,282 documents, 486K sections Series 38 = NR/5G, 23 = system architecture, 24 = signaling protocols, 36 = LTE, 33 = security, 29 = core network protocols. ## Recommended Workflows ### Finding specific technical details 1. Use `POST /search/text` with a focused query and `rerank_top_k: 5` 2. Read the `content` field for the matched chunk 3. Read `section_text` for the full section context 4. If you need the broader document structure, call `GET /sections/toc` with the `doc_number` from the result ### Exploring a specific document 1. Get the table of contents: `GET /sections/toc?doc_number=38.331` 2. Fetch a specific section: `GET /sections?section_number=5.3.3&doc_number=38.331` 3. Use `prefix=true` to get a section and all its sub-sections ### Broad topic research 1. Use `POST /search/combined` to get both text and diagrams 2. Use `filter_series` to narrow to a domain (e.g. "38" for NR) 3. Increase `rerank_top_k` to 15โ€“20 for more diverse results ### Comparing across releases 1. Search with `filter_release: "Rel-15"` for the original version 2. Search again with `filter_release: "Rel-19"` for the latest 3. Compare the section text to see what changed ## Tips for Best Results - **Always use reranking** (enabled by default). The `relevance_score` from the reranker is a much better quality signal than raw `similarity`.
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub