npm package: 3gpp-mcp-server
Description: MCP Server for querying 3GPP telecom protocol specifications
Latest version: 1.0.0

# 3GPP MCP Server

An MCP (Model Context Protocol) server that provides LLMs with access to 3GPP telecom protocol specifications and enables intelligent querying of technical documentation.

## Features

- **Semantic Search**: Search through 3GPP specification documents using natural language queries
- **Specification Details**: Get detailed information about specific 3GPP specifications
- **Protocol Information**: Query information about 3GPP protocols and procedures
- **Related Documents**: Find specifications related to specific topics
- **Resources**: Access to specification catalogs, protocol lists, and release timelines
- **Prompts**: Pre-written templates for common 3GPP-related queries

## Installation

1. Clone this repository
2. Install dependencies:
   ```bash
   npm install
   ```

3. Build the project:
   ```bash
   npm run build
   ```

4. (Optional) Download TSpec-LLM dataset:
   ```bash
   node dist/download-dataset.js
   ```

## Usage

### With Claude Desktop

1. Add the server configuration to your Claude Desktop config file:

```json
{
  "mcpServers": {
    "3gpp-server": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/path/to/3gpp-mcp-server"
    }
  }
}
```

2. Restart Claude Desktop
3. The server will be available with the following tools:

### Available Tools

#### `search_3gpp_specs`
Search through 3GPP specification documents using semantic search.

**Parameters:**
- `query` (string, required): Search query text
- `series` (array, optional): Filter by specification series (e.g., ["24", "25"])
- `releases` (array, optional): Filter by 3GPP releases (e.g., ["Rel-15", "Rel-16"])
- `limit` (number, optional): Maximum number of results (1-50, default: 10)
- `offset` (number, optional): Offset for pagination (default: 0)

#### `get_specification_details`
Get detailed information about a specific 3GPP specification.

**Parameters:**
- `specId` (string, required): Specification ID (e.g., "TS 24.301")
- `format` (string, optional): Level of detail - "summary", "detailed", or "raw" (default: "summary")

#### `query_protocol_info`
Get information about specific 3GPP protocols and procedures.

**Parameters:**
- `protocolName` (string, required): Name of the protocol (e.g., "NAS", "RRC")
- `queryType` (string, optional): Type of information - "procedures", "messages", or "overview" (default: "overview")

#### `find_related_specs`
Find specifications related to a given topic or specification.

**Parameters:**
- `topic` (string, required): Topic or specification to find related documents for
- `maxResults` (number, optional): Maximum number of related specs to return (default: 5)

### Available Resources

- `3gpp://specifications/catalog`: Complete catalog of available 3GPP specifications
- `3gpp://protocols/list`: List of all 3GPP protocols with descriptions
- `3gpp://releases/timeline`: Timeline of 3GPP releases and their major features

### Available Prompts

- `explain_3gpp_procedure`: Explain a specific 3GPP procedure in detail
- `compare_specifications`: Compare two 3GPP specifications highlighting differences

## Example Usage

Once integrated with Claude Desktop, you can use natural language queries like:

- "Search for NAS authentication procedures in LTE specifications"
- "Show me details about TS 24.301"
- "What are the key procedures in RRC protocol?"
- "Find specifications related to 5G security"
- "Explain the attach procedure in detail"
- "Compare TS 36.331 and TS 38.331"

## Architecture

The server consists of several key components:

- **Specification Manager**: Handles loading and managing 3GPP specifications
- **Search Engine**: Provides semantic search capabilities across documents
- **Document Processor**: Extracts and processes content from specification documents
- **MCP Server**: Implements the Model Context Protocol interface

## Data Source

This server is designed to work with the TSpec-LLM dataset, which contains processed 3GPP documentation from Release 8 to Release 19. The dataset is available at: https://huggingface.co/datasets/rasoul-nikbakht/TSpec-LLM

## Development

### Project Structure

```
src/
├── index.ts              # Main MCP server implementation
├── types/
│   └── 3gpp.ts          # TypeScript type definitions
└── utils/
    ├── specification-manager.ts  # Specification management
    ├── search-engine.ts         # Search functionality
    ├── document-processor.ts    # Document processing
    └── dataset-downloader.ts    # Dataset download utilities
```

### Scripts

- `npm run build`: Build the TypeScript project
- `npm run dev`: Build and watch for changes
- `npm start`: Run the compiled server
- `npm test`: Run tests (when implemented)

## Future Enhancements

- Vector embeddings for improved semantic search
- Integration with ChromaDB or similar vector databases
- Support for real-time specification updates
- Enhanced natural language processing for complex queries
- PDF support for additional specification formats
- Caching layer for improved performance

## Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.

## License

MIT License

## Acknowledgments

- Built using the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)
- Designed to work with the [TSpec-LLM dataset](https://huggingface.co/datasets/rasoul-nikbakht/TSpec-LLM)
- Supports 3GPP specifications from [3GPP.org](https://www.3gpp.org/)