Skip to main content
Glama

Server Details

3GPP Scout connects Cursor, Claude, Codex and other MCP clients to a hosted, continuously updated 3GPP search service. Search TS/TR specifications across Rel-15 through Rel-20, retrieve cited clauses, and search text, diagrams and figures. Explore recent RAN1, RAN2, RAN3, RAN4 and SA2 TDocs, company proposals and extracted meeting decisions, with source links. Connect using Streamable HTTP at https://api.3gppscout.com/mcp/ and sign in with OAuth 2.1. No local index or API key in the MCP configuration is required. Explorer includes 150 API/MCP requests per month; Founding Engineer includes 1,000 for $8/month. Hosted Scout chat is billed separately.

3GPP Scout is an independent product and is not affiliated with, endorsed or sponsored by 3GPP, ETSI or any 3GPP Organizational Partner. 3GPP™ is a trade mark of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners. Excerpts are quoted for reference and the official documents govern. Copyright, correction or removal requests: contact@3gppscout.com.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
5.1% over 64 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL
Repository
carrotlabsai/3gpp-scout-mcp
GitHub Stars
0
Server Listing
3GPP Scout

TDQS

C2.9/5.0

Scored across 26 tools

Disambiguation3/5

Most tools map to distinct resources (specs, TDocs, meetings, orgs, topics), but there is real overlap: fetch_tdoc vs get_tdoc, search_images vs search_combined, and get_company_positions vs search_positions all sit on fuzzy boundaries. get_sections and get_sections_batch also largely subsume each other, requiring the descriptions to disambiguate.

Naming Consistency2/5

Clean verb_noun names (get_tdoc, list_tdocs, follow_topic) are mixed with awkward auto-generated names carrying duplicated stems and HTTP suffixes like get_document_documents_get, search_text_search_text_post, and list_sections_sections_toc_get. About a quarter of the set breaks the otherwise consistent snake_case pattern.

Tool Count3/5

At 26 tools the set is heavy, just past the comfortable 3-15 range, but it legitimately spans five distinct resource areas (specs, TDocs, meetings, organizations, topics). A few tools (get_sections vs get_sections_batch) could be consolidated to tighten the surface.

Completeness4/5

The read/search-focused surface covers specs, sections, TDocs, meetings, decisions, org positions, and full follow-topic lifecycle (follow, unfollow, update, list, updates). The only notable gap is whole-document export, which is explicitly called out as unsupported.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedsearch_tdocs1 field changed
      • changedInput schema / properties / filters / properties / doc_kind / description
        Previous value: -"Kinds: contribution, pcr, cr, draft_cr, summary, way_forward, ls_in, ls_out, report, chair_notes, agenda, wid, sid, status_report, work_plan, draft_spec."New value: +"Kinds: contribution, pcr, cr, draft_cr, cr_pack, summary, way_forward, ls_in, ls_out, report, chair_notes, agenda, wid, sid, status_report, work_plan, draft_spec."
  2. 5 tool updates
    • Removedget_image_images
    • Removedhealth_check_health_get
    • Changedsearch_combined_search_combined_post2 fields changed
      • removedOutput schema / properties / elapsed_ms
        Removed value: -{
        -  "title": "Elapsed Ms",
        -  "type": "number"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "text_results",
        -  "image_results",
        -  "text_total",
        -  "image_total",
        -  "reranked",
        -  "elapsed_ms"
        -]New value: +[
        +  "query",
        +  "text_results",
        +  "image_results",
        +  "text_total",
        +  "image_total",
        +  "reranked"
        +]
    • Changedsearch_images_search_images_post2 fields changed
      • removedOutput schema / properties / elapsed_ms
        Removed value: -{
        -  "title": "Elapsed Ms",
        -  "type": "number"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "results",
        -  "total",
        -  "elapsed_ms"
        -]New value: +[
        +  "query",
        +  "results",
        +  "total"
        +]
    • Changedsearch_text_search_text_post2 fields changed
      • removedOutput schema / properties / elapsed_ms
        Removed value: -{
        -  "title": "Elapsed Ms",
        -  "type": "number"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "query",
        -  "results",
        -  "total",
        -  "reranked",
        -  "elapsed_ms"
        -]New value: +[
        +  "query",
        +  "results",
        +  "total",
        +  "reranked"
        +]
  3. 3 tool updates
    • Addedget_sections_batch
    • Changedsearch_combined_search_combined_post2 fields changed
      • addedOutput schema / properties / text_results / items / properties / children
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "properties": {
        +          "section_number": {
        +            "title": "Section Number",
        +            "type": "string"
        +          },
        +          "section_title": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "title": "Section Title"
        +          },
        +          "token_count": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "title": "Token Count"
        +          }
        +        },
        +        "required": [
        +          "section_number"
        +        ],
        +        "title": "SectionChild",
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "With include_children: the section's sub-clauses, without text.",
        +  "title": "Children"
        +}
      • addedOutput schema / properties / text_results / items / properties / descendant_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "With include_children: sub-clauses at any depth.",
        +  "title": "Descendant Count"
        +}
    • Changedsearch_text_search_text_post3 fields changed
      • addedInput schema / properties / include_children
        Added value: +{
        +  "default": false,
        +  "description": "Add each result's sub-clauses (number, title, token count; all of them up to 12, else the direct ones) and descendant_count, so you can pick the clause to read without a table-of-contents call.",
        +  "title": "Include Children",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / results / items / properties / children
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "properties": {
        +          "section_number": {
        +            "title": "Section Number",
        +            "type": "string"
        +          },
        +          "section_title": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "title": "Section Title"
        +          },
        +          "token_count": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "title": "Token Count"
        +          }
        +        },
        +        "required": [
        +          "section_number"
        +        ],
        +        "title": "SectionChild",
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "With include_children: the section's sub-clauses, without text.",
        +  "title": "Children"
        +}
      • addedOutput schema / properties / results / items / properties / descendant_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "With include_children: sub-clauses at any depth.",
        +  "title": "Descendant Count"
        +}
  4. 6 tool updates
    • Changedget_document_documents2 fields changed
      • addedOutput schema / properties / created_at / description
        Added value: +"When Scout indexed this version, not a 3GPP date; see provenance for those."
      • addedOutput schema / properties / provenance
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "When this spec version reached the public 3GPP archive, and the TSG plenary it came from.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.",
        +      "properties": {
        +        "archive_date_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'ftp_archive_listing' (the spec's folder under /ftp/Specs/archive/) or 'ftp_plenary_folder_listing' (a dated plenary folder that showed an earlier time).",
        +          "title": "Archive Date Source"
        +        },
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "archive_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.",
        +          "title": "Archive Url"
        +        },
        +        "notes": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.",
        +          "title": "Notes"
        +        },
        +        "plenary_batch": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).",
        +          "title": "Plenary Batch"
        +        },
        +        "plenary_batch_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'tsg_spec_list' (stated in 3GPP's list of specifications arising from that TSG round), 'tsg_meeting_start' (the month the plenary in tsg_meeting started) or 'ftp_plenary_folder' (the earliest dated folder holding the zip).",
        +          "title": "Plenary Batch Source"
        +        },
        +        "statement": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The known facts as plain sentences, ready to quote, e.g. 'Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).' It says 'uploaded to the 3GPP archive' and 'approved at', never 'published': no source states a publication date.",
        +          "title": "Statement"
        +        },
        +        "tsg_meeting": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Plenary meeting ID: 'SP-113' (TSG SA #113), 'RP-109' (TSG RAN), 'CP-110' (TSG CT); a trailing '-e' marks an electronic meeting.",
        +          "title": "Tsg Meeting"
        +        },
        +        "tsg_meeting_end": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Last day of the plenary meeting.",
        +          "title": "Tsg Meeting End"
        +        },
        +        "tsg_meeting_name": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The meeting as 3GPP names it, e.g. 'TSG SA #113'.",
        +          "title": "Tsg Meeting Name"
        +        },
        +        "tsg_meeting_relation": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'approved': change requests approved at this meeting created this version (3GPP CR database). 'arising_from': 3GPP lists this version among the specifications arising from this meeting. 'presented': a draft (below version 3.0.0) presented to this meeting.",
        +          "title": "Tsg Meeting Relation"
        +        },
        +        "tsg_meeting_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'cr_database' (3GPP change request database export) or 'tsg_spec_list' (3GPP's list of specifications arising from that TSG round).",
        +          "title": "Tsg Meeting Source"
        +        },
        +        "tsg_meeting_source_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The 3GPP file that names the meeting.",
        +          "title": "Tsg Meeting Source Url"
        +        },
        +        "tsg_meeting_start": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "First day of the plenary meeting.",
        +          "title": "Tsg Meeting Start"
        +        },
        +        "unknown_reasons": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Why a field is null, by field name. archive_uploaded_at: 'not_in_archive_listing'. tsg_meeting: 'before_tsg_lists_no_approved_cr' (uploaded before March 2023, when 3GPP's per-round spec lists start, and created by no approved change request, e.g. a release upgrade), 'draft_not_listed', or 'not_in_cr_database_or_tsg_lists'. Nothing is guessed.",
        +          "title": "Unknown Reasons"
        +        }
        +      },
        +      "title": "SpecProvenance",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet."
        +}
    • Changedget_sections_sections_get2 fields changed
      • addedInput schema / properties / available_before
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "date",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only versions uploaded to the 3GPP archive before this date (YYYY-MM-DD; before 00:00 UTC, so the day itself is excluded), e.g. a patent application's priority date. A version whose upload time is unknown is left out. Usually one version per release of each spec is indexed (the newest in that release, Rel-15 onward), so a release appears only if that version predates the cutoff; older versions are in the 3GPP archive but not searchable here. With latest=true and no version, returns the newest version uploaded before the date.",
        +  "title": "Available Before"
        +}
      • addedOutput schema / properties / result / items / properties / provenance
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "When this spec version reached the public 3GPP archive, and the TSG plenary it came from.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.",
        +      "properties": {
        +        "archive_date_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'ftp_archive_listing' (the spec's folder under /ftp/Specs/archive/) or 'ftp_plenary_folder_listing' (a dated plenary folder that showed an earlier time).",
        +          "title": "Archive Date Source"
        +        },
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "archive_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.",
        +          "title": "Archive Url"
        +        },
        +        "notes": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.",
        +          "title": "Notes"
        +        },
        +        "plenary_batch": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).",
        +          "title": "Plenary Batch"
        +        },
        +        "plenary_batch_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'tsg_spec_list' (stated in 3GPP's list of specifications arising from that TSG round), 'tsg_meeting_start' (the month the plenary in tsg_meeting started) or 'ftp_plenary_folder' (the earliest dated folder holding the zip).",
        +          "title": "Plenary Batch Source"
        +        },
        +        "statement": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The known facts as plain sentences, ready to quote, e.g. 'Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).' It says 'uploaded to the 3GPP archive' and 'approved at', never 'published': no source states a publication date.",
        +          "title": "Statement"
        +        },
        +        "tsg_meeting": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Plenary meeting ID: 'SP-113' (TSG SA #113), 'RP-109' (TSG RAN), 'CP-110' (TSG CT); a trailing '-e' marks an electronic meeting.",
        +          "title": "Tsg Meeting"
        +        },
        +        "tsg_meeting_end": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Last day of the plenary meeting.",
        +          "title": "Tsg Meeting End"
        +        },
        +        "tsg_meeting_name": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The meeting as 3GPP names it, e.g. 'TSG SA #113'.",
        +          "title": "Tsg Meeting Name"
        +        },
        +        "tsg_meeting_relation": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'approved': change requests approved at this meeting created this version (3GPP CR database). 'arising_from': 3GPP lists this version among the specifications arising from this meeting. 'presented': a draft (below version 3.0.0) presented to this meeting.",
        +          "title": "Tsg Meeting Relation"
        +        },
        +        "tsg_meeting_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'cr_database' (3GPP change request database export) or 'tsg_spec_list' (3GPP's list of specifications arising from that TSG round).",
        +          "title": "Tsg Meeting Source"
        +        },
        +        "tsg_meeting_source_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The 3GPP file that names the meeting.",
        +          "title": "Tsg Meeting Source Url"
        +        },
        +        "tsg_meeting_start": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "First day of the plenary meeting.",
        +          "title": "Tsg Meeting Start"
        +        },
        +        "unknown_reasons": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Why a field is null, by field name. archive_uploaded_at: 'not_in_archive_listing'. tsg_meeting: 'before_tsg_lists_no_approved_cr' (uploaded before March 2023, when 3GPP's per-round spec lists start, and created by no approved change request, e.g. a release upgrade), 'draft_not_listed', or 'not_in_cr_database_or_tsg_lists'. Nothing is guessed.",
        +          "title": "Unknown Reasons"
        +        }
        +      },
        +      "title": "SpecProvenance",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet."
        +}
    • Changedlist_documents_documents_get3 fields changed
      • addedInput schema / properties / available_before
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "date",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only versions uploaded to the 3GPP archive before this date (YYYY-MM-DD; before 00:00 UTC, so the day itself is excluded), e.g. a patent application's priority date. A version whose upload time is unknown is left out. Usually one version per release of each spec is indexed (the newest in that release, Rel-15 onward), so a release appears only if that version predates the cutoff; older versions are in the 3GPP archive but not searchable here.",
        +  "title": "Available Before"
        +}
      • addedOutput schema / properties / result / items / properties / created_at / description
        Added value: +"When Scout indexed this version, not a 3GPP date; see provenance for those."
      • addedOutput schema / properties / result / items / properties / provenance
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "When this spec version reached the public 3GPP archive, and the TSG plenary it came from.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.",
        +      "properties": {
        +        "archive_date_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'ftp_archive_listing' (the spec's folder under /ftp/Specs/archive/) or 'ftp_plenary_folder_listing' (a dated plenary folder that showed an earlier time).",
        +          "title": "Archive Date Source"
        +        },
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "archive_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.",
        +          "title": "Archive Url"
        +        },
        +        "notes": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.",
        +          "title": "Notes"
        +        },
        +        "plenary_batch": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).",
        +          "title": "Plenary Batch"
        +        },
        +        "plenary_batch_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'tsg_spec_list' (stated in 3GPP's list of specifications arising from that TSG round), 'tsg_meeting_start' (the month the plenary in tsg_meeting started) or 'ftp_plenary_folder' (the earliest dated folder holding the zip).",
        +          "title": "Plenary Batch Source"
        +        },
        +        "statement": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The known facts as plain sentences, ready to quote, e.g. 'Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).' It says 'uploaded to the 3GPP archive' and 'approved at', never 'published': no source states a publication date.",
        +          "title": "Statement"
        +        },
        +        "tsg_meeting": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Plenary meeting ID: 'SP-113' (TSG SA #113), 'RP-109' (TSG RAN), 'CP-110' (TSG CT); a trailing '-e' marks an electronic meeting.",
        +          "title": "Tsg Meeting"
        +        },
        +        "tsg_meeting_end": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Last day of the plenary meeting.",
        +          "title": "Tsg Meeting End"
        +        },
        +        "tsg_meeting_name": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The meeting as 3GPP names it, e.g. 'TSG SA #113'.",
        +          "title": "Tsg Meeting Name"
        +        },
        +        "tsg_meeting_relation": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'approved': change requests approved at this meeting created this version (3GPP CR database). 'arising_from': 3GPP lists this version among the specifications arising from this meeting. 'presented': a draft (below version 3.0.0) presented to this meeting.",
        +          "title": "Tsg Meeting Relation"
        +        },
        +        "tsg_meeting_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'cr_database' (3GPP change request database export) or 'tsg_spec_list' (3GPP's list of specifications arising from that TSG round).",
        +          "title": "Tsg Meeting Source"
        +        },
        +        "tsg_meeting_source_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The 3GPP file that names the meeting.",
        +          "title": "Tsg Meeting Source Url"
        +        },
        +        "tsg_meeting_start": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "First day of the plenary meeting.",
        +          "title": "Tsg Meeting Start"
        +        },
        +        "unknown_reasons": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Why a field is null, by field name. archive_uploaded_at: 'not_in_archive_listing'. tsg_meeting: 'before_tsg_lists_no_approved_cr' (uploaded before March 2023, when 3GPP's per-round spec lists start, and created by no approved change request, e.g. a release upgrade), 'draft_not_listed', or 'not_in_cr_database_or_tsg_lists'. Nothing is guessed.",
        +          "title": "Unknown Reasons"
        +        }
        +      },
        +      "title": "SpecProvenance",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet."
        +}
    • Changedsearch_combined_search_combined_post5 fields changed
      • addedInput schema / properties / available_before
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "date",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only versions uploaded to the 3GPP archive before this date (YYYY-MM-DD; before 00:00 UTC, so the day itself is excluded), e.g. a patent application's priority date. A version whose upload time is unknown is left out. Usually one version per release of each spec is indexed (the newest in that release, Rel-15 onward), so a release appears only if that version predates the cutoff; older versions are in the 3GPP archive but not searchable here.",
        +  "title": "Available Before"
        +}
      • changedOutput schema / properties / image_results / items / properties / also_in / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "description": "Reference to another release/version that matched the same section.",
        -      "properties": {
        -        "release": {
        -          "title": "Release",
        -          "type": "string"
        -        },
        -        "relevance_score": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Relevance Score"
        -        },
        -        "similarity": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Similarity"
        -        },
        -        "version": {
        -          "title": "Version",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "release",
        -        "version"
        -      ],
        -      "title": "AlsoIn",
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "description": "Reference to another release/version that matched the same section.",
        +      "properties": {
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version was uploaded to the 3GPP archive (ISO 8601, UTC); null when unknown.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "release": {
        +          "title": "Release",
        +          "type": "string"
        +        },
        +        "relevance_score": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Relevance Score"
        +        },
        +        "similarity": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Similarity"
        +        },
        +        "version": {
        +          "title": "Version",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "release",
        +        "version"
        +      ],
        +      "title": "AlsoIn",
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / properties / image_results / items / properties / provenance
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "When this spec version reached the public 3GPP archive, and the TSG plenary it came from.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.",
        +      "properties": {
        +        "archive_date_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'ftp_archive_listing' (the spec's folder under /ftp/Specs/archive/) or 'ftp_plenary_folder_listing' (a dated plenary folder that showed an earlier time).",
        +          "title": "Archive Date Source"
        +        },
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "archive_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.",
        +          "title": "Archive Url"
        +        },
        +        "notes": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.",
        +          "title": "Notes"
        +        },
        +        "plenary_batch": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).",
        +          "title": "Plenary Batch"
        +        },
        +        "plenary_batch_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'tsg_spec_list' (stated in 3GPP's list of specifications arising from that TSG round), 'tsg_meeting_start' (the month the plenary in tsg_meeting started) or 'ftp_plenary_folder' (the earliest dated folder holding the zip).",
        +          "title": "Plenary Batch Source"
        +        },
        +        "statement": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The known facts as plain sentences, ready to quote, e.g. 'Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).' It says 'uploaded to the 3GPP archive' and 'approved at', never 'published': no source states a publication date.",
        +          "title": "Statement"
        +        },
        +        "tsg_meeting": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Plenary meeting ID: 'SP-113' (TSG SA #113), 'RP-109' (TSG RAN), 'CP-110' (TSG CT); a trailing '-e' marks an electronic meeting.",
        +          "title": "Tsg Meeting"
        +        },
        +        "tsg_meeting_end": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Last day of the plenary meeting.",
        +          "title": "Tsg Meeting End"
        +        },
        +        "tsg_meeting_name": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The meeting as 3GPP names it, e.g. 'TSG SA #113'.",
        +          "title": "Tsg Meeting Name"
        +        },
        +        "tsg_meeting_relation": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'approved': change requests approved at this meeting created this version (3GPP CR database). 'arising_from': 3GPP lists this version among the specifications arising from this meeting. 'presented': a draft (below version 3.0.0) presented to this meeting.",
        +          "title": "Tsg Meeting Relation"
        +        },
        +        "tsg_meeting_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'cr_database' (3GPP change request database export) or 'tsg_spec_list' (3GPP's list of specifications arising from that TSG round).",
        +          "title": "Tsg Meeting Source"
        +        },
        +        "tsg_meeting_source_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The 3GPP file that names the meeting.",
        +          "title": "Tsg Meeting Source Url"
        +        },
        +        "tsg_meeting_start": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "First day of the plenary meeting.",
        +          "title": "Tsg Meeting Start"
        +        },
        +        "unknown_reasons": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Why a field is null, by field name. archive_uploaded_at: 'not_in_archive_listing'. tsg_meeting: 'before_tsg_lists_no_approved_cr' (uploaded before March 2023, when 3GPP's per-round spec lists start, and created by no approved change request, e.g. a release upgrade), 'draft_not_listed', or 'not_in_cr_database_or_tsg_lists'. Nothing is guessed.",
        +          "title": "Unknown Reasons"
        +        }
        +      },
        +      "title": "SpecProvenance",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet."
        +}
      • changedOutput schema / properties / text_results / items / properties / also_in / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "description": "Reference to another release/version that matched the same section.",
        -      "properties": {
        -        "release": {
        -          "title": "Release",
        -          "type": "string"
        -        },
        -        "relevance_score": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Relevance Score"
        -        },
        -        "similarity": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Similarity"
        -        },
        -        "version": {
        -          "title": "Version",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "release",
        -        "version"
        -      ],
        -      "title": "AlsoIn",
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "description": "Reference to another release/version that matched the same section.",
        +      "properties": {
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version was uploaded to the 3GPP archive (ISO 8601, UTC); null when unknown.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "release": {
        +          "title": "Release",
        +          "type": "string"
        +        },
        +        "relevance_score": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Relevance Score"
        +        },
        +        "similarity": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Similarity"
        +        },
        +        "version": {
        +          "title": "Version",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "release",
        +        "version"
        +      ],
        +      "title": "AlsoIn",
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / properties / text_results / items / properties / provenance
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "When this spec version reached the public 3GPP archive, and the TSG plenary it came from.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.",
        +      "properties": {
        +        "archive_date_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'ftp_archive_listing' (the spec's folder under /ftp/Specs/archive/) or 'ftp_plenary_folder_listing' (a dated plenary folder that showed an earlier time).",
        +          "title": "Archive Date Source"
        +        },
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "archive_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.",
        +          "title": "Archive Url"
        +        },
        +        "notes": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.",
        +          "title": "Notes"
        +        },
        +        "plenary_batch": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).",
        +          "title": "Plenary Batch"
        +        },
        +        "plenary_batch_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'tsg_spec_list' (stated in 3GPP's list of specifications arising from that TSG round), 'tsg_meeting_start' (the month the plenary in tsg_meeting started) or 'ftp_plenary_folder' (the earliest dated folder holding the zip).",
        +          "title": "Plenary Batch Source"
        +        },
        +        "statement": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The known facts as plain sentences, ready to quote, e.g. 'Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).' It says 'uploaded to the 3GPP archive' and 'approved at', never 'published': no source states a publication date.",
        +          "title": "Statement"
        +        },
        +        "tsg_meeting": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Plenary meeting ID: 'SP-113' (TSG SA #113), 'RP-109' (TSG RAN), 'CP-110' (TSG CT); a trailing '-e' marks an electronic meeting.",
        +          "title": "Tsg Meeting"
        +        },
        +        "tsg_meeting_end": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Last day of the plenary meeting.",
        +          "title": "Tsg Meeting End"
        +        },
        +        "tsg_meeting_name": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The meeting as 3GPP names it, e.g. 'TSG SA #113'.",
        +          "title": "Tsg Meeting Name"
        +        },
        +        "tsg_meeting_relation": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'approved': change requests approved at this meeting created this version (3GPP CR database). 'arising_from': 3GPP lists this version among the specifications arising from this meeting. 'presented': a draft (below version 3.0.0) presented to this meeting.",
        +          "title": "Tsg Meeting Relation"
        +        },
        +        "tsg_meeting_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'cr_database' (3GPP change request database export) or 'tsg_spec_list' (3GPP's list of specifications arising from that TSG round).",
        +          "title": "Tsg Meeting Source"
        +        },
        +        "tsg_meeting_source_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The 3GPP file that names the meeting.",
        +          "title": "Tsg Meeting Source Url"
        +        },
        +        "tsg_meeting_start": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "First day of the plenary meeting.",
        +          "title": "Tsg Meeting Start"
        +        },
        +        "unknown_reasons": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Why a field is null, by field name. archive_uploaded_at: 'not_in_archive_listing'. tsg_meeting: 'before_tsg_lists_no_approved_cr' (uploaded before March 2023, when 3GPP's per-round spec lists start, and created by no approved change request, e.g. a release upgrade), 'draft_not_listed', or 'not_in_cr_database_or_tsg_lists'. Nothing is guessed.",
        +          "title": "Unknown Reasons"
        +        }
        +      },
        +      "title": "SpecProvenance",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet."
        +}
    • Changedsearch_images_search_images_post3 fields changed
      • addedInput schema / properties / available_before
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "date",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only versions uploaded to the 3GPP archive before this date (YYYY-MM-DD; before 00:00 UTC, so the day itself is excluded), e.g. a patent application's priority date. A version whose upload time is unknown is left out. Usually one version per release of each spec is indexed (the newest in that release, Rel-15 onward), so a release appears only if that version predates the cutoff; older versions are in the 3GPP archive but not searchable here.",
        +  "title": "Available Before"
        +}
      • changedOutput schema / properties / results / items / properties / also_in / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "description": "Reference to another release/version that matched the same section.",
        -      "properties": {
        -        "release": {
        -          "title": "Release",
        -          "type": "string"
        -        },
        -        "relevance_score": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Relevance Score"
        -        },
        -        "similarity": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Similarity"
        -        },
        -        "version": {
        -          "title": "Version",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "release",
        -        "version"
        -      ],
        -      "title": "AlsoIn",
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "description": "Reference to another release/version that matched the same section.",
        +      "properties": {
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version was uploaded to the 3GPP archive (ISO 8601, UTC); null when unknown.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "release": {
        +          "title": "Release",
        +          "type": "string"
        +        },
        +        "relevance_score": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Relevance Score"
        +        },
        +        "similarity": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Similarity"
        +        },
        +        "version": {
        +          "title": "Version",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "release",
        +        "version"
        +      ],
        +      "title": "AlsoIn",
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / properties / results / items / properties / provenance
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "When this spec version reached the public 3GPP archive, and the TSG plenary it came from.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.",
        +      "properties": {
        +        "archive_date_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'ftp_archive_listing' (the spec's folder under /ftp/Specs/archive/) or 'ftp_plenary_folder_listing' (a dated plenary folder that showed an earlier time).",
        +          "title": "Archive Date Source"
        +        },
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "archive_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.",
        +          "title": "Archive Url"
        +        },
        +        "notes": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.",
        +          "title": "Notes"
        +        },
        +        "plenary_batch": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).",
        +          "title": "Plenary Batch"
        +        },
        +        "plenary_batch_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'tsg_spec_list' (stated in 3GPP's list of specifications arising from that TSG round), 'tsg_meeting_start' (the month the plenary in tsg_meeting started) or 'ftp_plenary_folder' (the earliest dated folder holding the zip).",
        +          "title": "Plenary Batch Source"
        +        },
        +        "statement": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The known facts as plain sentences, ready to quote, e.g. 'Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).' It says 'uploaded to the 3GPP archive' and 'approved at', never 'published': no source states a publication date.",
        +          "title": "Statement"
        +        },
        +        "tsg_meeting": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Plenary meeting ID: 'SP-113' (TSG SA #113), 'RP-109' (TSG RAN), 'CP-110' (TSG CT); a trailing '-e' marks an electronic meeting.",
        +          "title": "Tsg Meeting"
        +        },
        +        "tsg_meeting_end": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Last day of the plenary meeting.",
        +          "title": "Tsg Meeting End"
        +        },
        +        "tsg_meeting_name": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The meeting as 3GPP names it, e.g. 'TSG SA #113'.",
        +          "title": "Tsg Meeting Name"
        +        },
        +        "tsg_meeting_relation": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'approved': change requests approved at this meeting created this version (3GPP CR database). 'arising_from': 3GPP lists this version among the specifications arising from this meeting. 'presented': a draft (below version 3.0.0) presented to this meeting.",
        +          "title": "Tsg Meeting Relation"
        +        },
        +        "tsg_meeting_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'cr_database' (3GPP change request database export) or 'tsg_spec_list' (3GPP's list of specifications arising from that TSG round).",
        +          "title": "Tsg Meeting Source"
        +        },
        +        "tsg_meeting_source_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The 3GPP file that names the meeting.",
        +          "title": "Tsg Meeting Source Url"
        +        },
        +        "tsg_meeting_start": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "First day of the plenary meeting.",
        +          "title": "Tsg Meeting Start"
        +        },
        +        "unknown_reasons": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Why a field is null, by field name. archive_uploaded_at: 'not_in_archive_listing'. tsg_meeting: 'before_tsg_lists_no_approved_cr' (uploaded before March 2023, when 3GPP's per-round spec lists start, and created by no approved change request, e.g. a release upgrade), 'draft_not_listed', or 'not_in_cr_database_or_tsg_lists'. Nothing is guessed.",
        +          "title": "Unknown Reasons"
        +        }
        +      },
        +      "title": "SpecProvenance",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet."
        +}
    • Changedsearch_text_search_text_post3 fields changed
      • addedInput schema / properties / available_before
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "date",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only versions uploaded to the 3GPP archive before this date (YYYY-MM-DD; before 00:00 UTC, so the day itself is excluded), e.g. a patent application's priority date. A version whose upload time is unknown is left out. Usually one version per release of each spec is indexed (the newest in that release, Rel-15 onward), so a release appears only if that version predates the cutoff; older versions are in the 3GPP archive but not searchable here.",
        +  "title": "Available Before"
        +}
      • changedOutput schema / properties / results / items / properties / also_in / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "description": "Reference to another release/version that matched the same section.",
        -      "properties": {
        -        "release": {
        -          "title": "Release",
        -          "type": "string"
        -        },
        -        "relevance_score": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Relevance Score"
        -        },
        -        "similarity": {
        -          "anyOf": [
        -            {
        -              "type": "number"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "title": "Similarity"
        -        },
        -        "version": {
        -          "title": "Version",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "release",
        -        "version"
        -      ],
        -      "title": "AlsoIn",
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "description": "Reference to another release/version that matched the same section.",
        +      "properties": {
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version was uploaded to the 3GPP archive (ISO 8601, UTC); null when unknown.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "release": {
        +          "title": "Release",
        +          "type": "string"
        +        },
        +        "relevance_score": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Relevance Score"
        +        },
        +        "similarity": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Similarity"
        +        },
        +        "version": {
        +          "title": "Version",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "release",
        +        "version"
        +      ],
        +      "title": "AlsoIn",
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / properties / results / items / properties / provenance
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "When this spec version reached the public 3GPP archive, and the TSG plenary it came from.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.",
        +      "properties": {
        +        "archive_date_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'ftp_archive_listing' (the spec's folder under /ftp/Specs/archive/) or 'ftp_plenary_folder_listing' (a dated plenary folder that showed an earlier time).",
        +          "title": "Archive Date Source"
        +        },
        +        "archive_uploaded_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.",
        +          "title": "Archive Uploaded At"
        +        },
        +        "archive_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.",
        +          "title": "Archive Url"
        +        },
        +        "notes": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.",
        +          "title": "Notes"
        +        },
        +        "plenary_batch": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).",
        +          "title": "Plenary Batch"
        +        },
        +        "plenary_batch_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'tsg_spec_list' (stated in 3GPP's list of specifications arising from that TSG round), 'tsg_meeting_start' (the month the plenary in tsg_meeting started) or 'ftp_plenary_folder' (the earliest dated folder holding the zip).",
        +          "title": "Plenary Batch Source"
        +        },
        +        "statement": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The known facts as plain sentences, ready to quote, e.g. 'Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).' It says 'uploaded to the 3GPP archive' and 'approved at', never 'published': no source states a publication date.",
        +          "title": "Statement"
        +        },
        +        "tsg_meeting": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Plenary meeting ID: 'SP-113' (TSG SA #113), 'RP-109' (TSG RAN), 'CP-110' (TSG CT); a trailing '-e' marks an electronic meeting.",
        +          "title": "Tsg Meeting"
        +        },
        +        "tsg_meeting_end": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Last day of the plenary meeting.",
        +          "title": "Tsg Meeting End"
        +        },
        +        "tsg_meeting_name": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The meeting as 3GPP names it, e.g. 'TSG SA #113'.",
        +          "title": "Tsg Meeting Name"
        +        },
        +        "tsg_meeting_relation": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'approved': change requests approved at this meeting created this version (3GPP CR database). 'arising_from': 3GPP lists this version among the specifications arising from this meeting. 'presented': a draft (below version 3.0.0) presented to this meeting.",
        +          "title": "Tsg Meeting Relation"
        +        },
        +        "tsg_meeting_source": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "'cr_database' (3GPP change request database export) or 'tsg_spec_list' (3GPP's list of specifications arising from that TSG round).",
        +          "title": "Tsg Meeting Source"
        +        },
        +        "tsg_meeting_source_url": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "The 3GPP file that names the meeting.",
        +          "title": "Tsg Meeting Source Url"
        +        },
        +        "tsg_meeting_start": {
        +          "anyOf": [
        +            {
        +              "format": "date",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "First day of the plenary meeting.",
        +          "title": "Tsg Meeting Start"
        +        },
        +        "unknown_reasons": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "description": "Why a field is null, by field name. archive_uploaded_at: 'not_in_archive_listing'. tsg_meeting: 'before_tsg_lists_no_approved_cr' (uploaded before March 2023, when 3GPP's per-round spec lists start, and created by no approved change request, e.g. a release upgrade), 'draft_not_listed', or 'not_in_cr_database_or_tsg_lists'. Nothing is guessed.",
        +          "title": "Unknown Reasons"
        +        }
        +      },
        +      "title": "SpecProvenance",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet."
        +}
  5. 27 tool updates
    • First observedfetch_tdoc
    • First observedfind_topics_to_follow
    • First observedfollow_topic
    • First observedget_company_positions
    • First observedget_document_documents
    • First observedget_followed_topic_updates
    • First observedget_image_images
    • First observedget_meeting
    • First observedget_organization
    • First observedget_sections_sections_get
    • First observedget_tdoc
    • First observedhealth_check_health_get
    • First observedlist_documents_documents_get
    • First observedlist_followed_topics
    • First observedlist_meeting_decisions
    • First observedlist_meetings
    • First observedlist_sections_sections_toc_get
    • First observedlist_tdocs
    • First observedresolve_organization
    • First observedsearch_combined_search_combined_post
    • First observedsearch_images_search_images_post
    • First observedsearch_news
    • First observedsearch_positions
    • First observedsearch_tdocs
    • First observedsearch_text_search_text_post
    • First observedunfollow_topic
    • First observedupdate_followed_topic

Publisher details

Operator
3gppscout · Publisher source
Vendor relationship
Independent · Publisher source
Trust center
Not available
Restrictions
OAuth 2.1 browser sign-in required. Explorer includes 150 API/MCP requests per UTC calendar month with no card required. Founding Engineer includes 1,000 for $8/month. Hosted Scout chat is billed separately. No local index or API key in MCP configuration is required. · Publisher source

Related MCP Connectors

  • Remote MCP server that gives Claude, ChatGPT, Cursor or any MCP client Google search volume, CPC, competition and similar keywords for 50+ countries. Works with no signup at 20 lookups a day; sign in with OAuth or an API key for higher limits, or $4.99 a month for unlimited.

    https://mcp.seodata.dev/mcp
  • Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.

    https://api.usepalim.com/mcp
  • AMZScout Skill + MCP gives AI agents live access to real Amazon marketplace data across 14 Amazon marketplaces. Analyze any ASIN, validate product ideas, research niches, compare competitors, discover profitable keywords, and build data-driven PPC strategies using trusted Amazon insights instead of AI assumptions. Works with Claude, ChatGPT, Cursor, and any other MCP-compatible AI client. To connect, you'll need an AMZScout API plan and authorize your account. Get access and view pricing here: https://learn.amzscout.net/amazon-product-api-for-ai-agents

    https://chatbot.amzscout.net/mcp
  • Your agent needs the open web — searched by more than one engine, and read as clean markdown rather than raw HTML. **What you can ask for** • "Search this question with two providers and tell me where they disagree." • "Scrape these 40 URLs into markdown, in one batch." • "Crawl this documentation site and give me every page." • "Do deep research on this topic and cite the sources." • "Find the academic papers behind this claim." **How to use it** Point any MCP client at https://mcp.aisa.one/search/mcp and sign in with OAuth — there is no key to create or paste. 30 tools across several independent providers: Tavily and Exa search, answers, contents and agent runs; Firecrawl scrape, batch scrape, crawl, map and search; Perplexity Sonar, Sonar Pro, reasoning and deep research; Oxylabs AI search and LLM jobs; OpenAI and Anthropic web search; and scholarly search. **Why this rather than the source** Several independent indexes behind one account, because one engine's blind spot is not visible from inside it. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the page here, then ask the same agent who links to it or how much traffic it gets — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo-serp/mcp for the Google results page itself, https://mcp.aisa.one/seo-serp-other-engines/mcp for Bing, Baidu and Naver.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables AI assistants to access and search 3GPP telecommunications specifications through direct integration with the TSpec-LLM dataset. Provides real-time specification content, implementation requirements, and multi-spec comparisons for 3GPP standards development.
    4
    50 npm
    29
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search and retrieve information from 3GPP specification documents, including full-text search and specific lookup for LTE and 5G NAS cause values. It comes with pre-processed data for major specifications covering NAS, RRC, and protocol conformance testing.
    3
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Directories

Listed in ChatGPT · 3GPP Scout

Last observed