mcp-server-3gpp
This server provides tools to search, navigate, and extract content from 3GPP and IETF RFC specifications.
Search 3GPP documents (
search_3gpp_docs): Keyword-based search across specs (e.g., TS 24.008, TS 24.301, TS 24.501, TS 36.300), with optional filtering by spec name and configurable result limits.Get EMM/5GMM cause codes (
get_emm_cause): Look up detailed info (number, name, description, source spec) for EMM (LTE) or 5GMM (5G) cause codes by cause number.List available specifications (
list_specs): Get all indexed 3GPP specs with total indexed chunk counts.Detailed spec catalog (
get_spec_catalog): Access a comprehensive catalog including titles, versions, series, descriptions, and content statistics.Navigate chapter hierarchy (
get_spec_toc): Retrieve the Table of Contents for a specification, with optional depth or section prefix limits.Retrieve exact section text (
get_section): Fetch precise text for a section using its unique ID or a spec ID + section number combination.Expand related sections (
search_related_sections): Discover sections related to an anchor section — parents, children, siblings, and neighbors.Trace cross-spec references (
get_spec_references): Explore incoming and outgoing citations between different specifications.Access ingestion guidelines: Retrieve operational instructions for tasks like ETSI download, RFC ingestion, or managing the extraction pipeline.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-3gppExplain 5GMM cause 27 from TS 24.501"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-3gpp
MCP server for 3GPP and IETF RFC specifications, backed by a prebuilt SQLite corpus.
The current v2 server is built around AI-guided chapter navigation, not hard-coded protocol lookup logic. The intended workflow is:
Discover relevant specs with
get_spec_catalogorsearch_3gpp_docs.Walk the chapter structure with
get_spec_toc.Retrieve exact text with
get_section.Expand locally with
search_related_sections.Jump across documents with
get_spec_references.
Search is a starting point, not the whole product. The model is expected to browse and choose chapters deliberately.
What ships today
DB-backed v2 server with 8 MCP tools
Prebuilt corpus in
data/corpus/3gpp.db207 specs total: 112 TS, 2 TR, 93 RFC
66,109 full sections and 63,376 TOC rows
45,162 cross-spec reference edges
Stdio MCP entrypoint in
src/index.jsOptional Streamable HTTP transport in
src/http.js
Search behavior
search_3gpp_docsexposes keyword search with quoted phrases,spec:filters,section:hints, and negation.The database and runtime can host
sqlite-vecembeddings viavec_sections.The default MCP tool path is still keyword-first unless a query embedding function is supplied to the search layer, so do not assume semantic ranking is active just because
vec_sectionsexists.
Quick start
git lfs install
git clone https://github.com/Lee-SiHyeon/mcp-server-3gpp.git
cd mcp-server-3gpp
npm install
npm run validate
npm startThe bundled database is tracked with Git LFS. A healthy startup looks like:
[3GPP MCP] Database ready: .../data/corpus/3gpp.db
[3GPP MCP] Features - FTS: true, Vector: true
[3GPP MCP] Registered 8 tools (v2 DB mode)MCP client configuration
Claude Desktop
{
"mcpServers": {
"3gpp": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-3gpp/src/index.js"]
}
}
}VS Code / GitHub Copilot
{
"servers": {
"3gpp": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp-server-3gpp/src/index.js"]
}
}
}Optional custom DB path
{
"env": {
"THREEGPP_DB_PATH": "/custom/path/to/3gpp.db"
}
}The server checks these DB locations in order:
THREEGPP_DB_PATHdata/corpus/3gpp.dbdata/3gpp.db
Tool surface
Tool | Purpose |
| List indexed specs with title, version, series, description, section count, and page count. |
| Return the chapter hierarchy for a spec, optionally limited by depth or section prefix. |
| Fetch the exact section text by |
| Rank candidate sections for a query and return section IDs for follow-up retrieval. |
| Expand from an anchor section through parent, child, sibling, and search-derived neighbors. |
| Traverse incoming and outgoing cross-spec citations. |
| Return operational instructions for ETSI download, RFC ingest, or the extraction pipeline. |
| Compatibility alias with a smaller output shape; prefer |
Recommended prompting pattern
Use prompts that encourage structure-first navigation:
Find the chapter in TS 24.301 that defines attach reject causes.
Start by locating the spec, then inspect the TOC, then fetch the most relevant section.I need the exact wording for the NAS registration timer behavior in 5G.
Search for likely sections, then read the chapter text and nearby sections.Show which RFCs and 3GPP specs TS 29.500 cites most often.Corpus statistics
Metric | Value |
Total specs | 207 |
TS specs | 112 |
TR specs | 2 |
RFC specs | 93 |
TOC rows | 63,376 |
Section rows | 66,109 |
Cross-spec references | 45,162 |
Ingestion runs recorded | 535 |
Architecture at a glance
LLM client
-> MCP transport (stdio or HTTP)
-> tool registry + validation
-> tool handlers
-> SQLite corpus (specs, toc, sections, sections_fts, spec_references, ingestion_runs)
-> optional vec_sections table and guide resourcesMore detail lives in docs/architecture.md and docs/data-model.md.
Validation and tests
npm run validate
npm testnpm run validate checks the package metadata, resolves the DB path, verifies the core schema and counts, and confirms that the v2 server registers the current 8-tool surface.
Project structure
mcp-server-3gpp/
├── src/
│ ├── index.js
│ ├── http.js
│ ├── db/
│ ├── search/
│ ├── tools/
│ └── ingest/
├── docs/
├── db/
├── data/
│ └── corpus/
│ └── 3gpp.db
├── test/
├── validate.js
└── package.jsonNotes
The documented operating model is the DB-backed v2 server.
There is still a legacy fallback path in
src/index.jsif no SQLite DB is found, but that is a bootstrap escape hatch, not the primary interface this repository documents.get_sectionandget_spec_tocare the core deterministic retrieval tools. Search should feed them, not replace them.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Lee-SiHyeon/mcp-server-3gpp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server