mcp-server-3gpp
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 Specification Document Search
A Model Context Protocol (MCP) server that enables AI assistants to search, navigate, and retrieve content from 3GPP and IETF RFC specification documents.
Features
π 207 specifications indexed β 114 3GPP/ETSI + 93 IETF RFC (66,109 sections)
π Hybrid search: BM25/FTS5 keyword search + optional sqlite-vec semantic search
ποΈ Hierarchical TOC navigation β browse spec structure before fetching sections
π Cross-spec reference graph β 45,162 citation relationships extracted from corpus
π§ LLM-first design β 8 generic tools; LLM navigates freely, no hard-coded lookups
π MCP SDK compatible: stdio transport, JSON-RPC 2.0
Quick Install
# 1. Clone (Git LFS required for the pre-built database)
git lfs install
git clone https://github.com/Lee-SiHyeon/mcp-server-3gpp.git
cd mcp-server-3gpp
# 2. Install Node dependencies
npm install
# 3. Verify the database is present (~416 MB, tracked by Git LFS)
ls -lh data/corpus/3gpp.db
# 4. Test the server
npm start # Should print: [3GPP MCP] Registered 8 tools (v2 DB mode)No Git LFS?
Install it first:apt install git-lfs/brew install git-lfs/ git-lfs.com
Then:git lfs pullinside the cloned repo.
MCP Client Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or%APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"3gpp": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-3gpp/src/index.js"]
}
}
}VS Code / GitHub Copilot
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"3gpp": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp-server-3gpp/src/index.js"]
}
}
}GitHub Copilot CLI (~/.copilot/mcp.json)
{
"mcpServers": {
"3gpp": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-3gpp/src/index.js"]
}
}
}Custom DB path (optional)
"env": { "THREEGPP_DB_PATH": "/custom/path/to/3gpp.db" }Available Tools (8)
Tool | Description |
| List all 207 specs with metadata (title, version, section count). Use first to discover spec IDs. |
| Get section hierarchy (TOC) for a spec. Returns section numbers, titles, page numbers. |
| Fetch full text of a section by |
| Keyword/semantic hybrid search across all sections. Supports quoted phrases and spec filter. |
| Given an anchor section, find parent/child/sibling/similar sections. |
| Cross-spec citation graph: which specs does this spec cite? Who cites it? |
| Returns step-by-step guide for expanding the corpus (ETSI download, RFC ingest, AutoRAG pipeline). |
| Simple spec list with section counts (legacy-compatible alias for |
Example Queries (for LLM)
# Find the 5G attach procedure
search_3gpp_docs("registration procedure NR", spec="ts_24_501")
# Browse TS 24.301 structure
get_spec_toc("ts_24_301", maxDepth=3)
# Read a specific section
get_section("ts_24_301:5.5.1.2.4")
# What does TS 24.301 reference?
get_spec_references("ts_24_301", direction="outgoing", inCorpusOnly=true)
# Navigate from a section outward
search_related_sections("ts_24_301:5.5.1", sameSpecOnly=false)Corpus Statistics
Metric | Value |
3GPP/ETSI specs | 114 |
IETF RFC specs | 93 |
Total specs | 207 |
Total sections | 66,109 |
Cross-spec references | 45,162 |
DB size | ~416 MB (Git LFS) |
Full-text search | FTS5 / BM25 |
Semantic search | Optional (sqlite-vec, requires |
Included Spec Families
3GPP/ETSI (114 specs)
NAS: TS 24.008, 24.301, 24.501, 24.229 (IMS SIP)
RRC: TS 25.331, 36.331, 38.331
Conformance: TS 34.123-1, 36.523-1, 38.523-1, 51.010-1
5G Core SBA: TS 29.500β29.599 (62 specs)
Security: TS 33.102, 33.401, 33.501
USIM: TS 31.102, 31.121, 31.124
Architecture: TS 23.xxx, 38.xxx series
IETF RFC (93 specs)
SIP/VoIP: RFC 3261, 3262β3265, 3311, 3428
Diameter: RFC 3588, 4005, 6733
TLS/DTLS: RFC 5246, 8446, 9147
QUIC: RFC 9000β9002
HTTP: RFC 7540, 9110β9114
OAuth/JWT: RFC 6749, 6750, 7519, 8693, 9068
DNS: RFC 1034, 1035, 4033β4035
WebRTC, SCTP, RTP, SDP, STUN, TURN, IPsec, IKEv2, BGP, MPLSβ¦
Architecture
βββββββββββββββββββββββββββββββββββ
β MCP Client (LLM) β
ββββββββββββββ¬βββββββββββββββββββββ
β JSON-RPC 2.0 (stdio)
ββββββββββββββΌβββββββββββββββββββββ
β src/index.js (MCP Server) β
β 8 tools registered β
ββββββββββββββ¬βββββββββββββββββββββ
β
ββββββββββββββΌβββββββββββββββββββββ
β data/corpus/3gpp.db β
β SQLite + FTS5 + spec_references β
β 207 specs / 66,109 sections β
βββββββββββββββββββββββββββββββββββDB Schema (key tables)
specsβ one row per specification (id, title, version, series)sectionsβ full section text (id, spec_id, section_number, content, depth)tocβ lightweight navigation index (section_number, title, brief, page)sections_ftsβ FTS5 virtual table, BM25 keyword searchspec_referencesβ cross-spec citation graph (45,162 rows)vec_sectionsβ sqlite-vec float[384] embeddings (optional, requires generation)
Rebuilding the Corpus
The pre-built data/corpus/3gpp.db is included via Git LFS. Only rebuild if you want to add new specs.
Prerequisites
# Python packages (for PDF extraction only)
pip install -r requirements.txt # PyMuPDF + requestsAdd new 3GPP/ETSI specs
npm run corpus:download # Download latest PDFs from ETSI
npm run corpus:extract # Extract sections β JSONL
npm run corpus:build # Build/update SQLite DB
# Or all at once:
npm run corpus:fullAdd RFC documents
npm run rfc:all # Download + extract + load all priority RFCs
# Or step by step:
npm run rfc:download
npm run rfc:extract
npm run rfc:loadRebuild cross-spec reference graph
node scripts/extract_cross_refs.js --verboseEnable semantic search (optional)
node scripts/generate_embeddings.js # Generates float[384] embeddings into vec_sectionsTesting
npm test # Full test suite (node:test)
npm run validate # Validate DB and MCP serverProject Structure
mcp-server-3gpp/
βββ src/
β βββ index.js # MCP server entry point
β βββ tools/ # 8 tool handlers
β β βββ getSpecCatalog.js
β β βββ getSpecToc.js
β β βββ getSection.js
β β βββ search3gppDocs.js
β β βββ searchRelatedSections.js
β β βββ getSpecReferences.js # Cross-spec citation graph
β β βββ getIngestGuide.js
β β βββ listSpecs.js
β βββ search/
β β βββ hybridRanker.js # BM25 + vector fusion (Ξ±=0.4)
β βββ db/
β βββ connection.js # better-sqlite3 singleton
β βββ schema.js # Schema init + sqlite-vec probe
βββ scripts/
β βββ extract_cross_refs.js # Cross-reference extraction
β βββ download_etsi_specs.py # ETSI PDF downloader
β βββ download_rfc.py # IETF RFC downloader
β βββ extract_pdf_structure.py # PyMuPDF section extractor
β βββ extract_rfc_structure.py # RFC text parser
β βββ build_section_spans.py # Section boundary detector
β βββ build_corpus.js # SQLite builder
βββ data/
β βββ corpus/
β βββ 3gpp.db # Pre-built corpus (~416 MB, Git LFS)
βββ db/
β βββ schema.sql # SQLite DDL
βββ test/ # node:test suite
βββ requirements.txt # Python deps (PyMuPDF, requests)
βββ package.jsonLicense
MIT β see LICENSE.
Disclaimer
Not affiliated with 3GPP. Specification documents are copyrighted by ETSI and 3GPP partners. Users are responsible for complying with applicable terms when downloading specification PDFs.
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