NCM MCP Servers Suite
Provides tools for managing Ericsson Enterprise Wireless NCM infrastructure, including fleet management (routers, groups, accounts, locations, configurations, firmware), monitoring (net devices, alerts, speed tests), and cloud services (users, subscriptions, private cellular, exchange).
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., "@NCM MCP Servers Suitelist all routers in account ACME"
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.
NCM MCP Servers

A suite of three focused MCP (Model Context Protocol) servers for the Ericsson Enterprise Wireless NCM API, split by domain responsibility for optimal LLM tool selection.
Architecture
Server | Port | Domain | Tools |
| 3001 | Routers, groups, accounts, locations, configurations, firmware, products | 17 |
| 3002 | Net devices, alerts/logs, speed tests | 6 |
| 3003 | Users, subscriptions, private cellular, exchange | 13 |
All servers default to Streamable HTTP transport and run together in a single container.
Related MCP server: inflow-mcp
Quick Start
1. Install
cd ncm_mcp_servers
pip install -e .2. Configure Credentials
Copy the example and fill in your values:
cp credentials.example.json credentials.json{
"X_CP_API_ID": "your-cp-api-id",
"X_CP_API_KEY": "your-cp-api-key",
"X_ECM_API_ID": "your-ecm-api-id",
"X_ECM_API_KEY": "your-ecm-api-key",
"NCM_API_TOKEN": "your-v3-bearer-token"
}Alternatively, set environment variables with the same names.
3. Run (Docker — recommended)
docker compose up --buildOr build and run manually:
docker build -t ncm-mcp-servers .
docker run -p 3001:3001 -p 3002:3002 -p 3003:3003 \
-v ./credentials.json:/app/credentials.json:ro \
ncm-mcp-serversThis starts a single container running all 3 servers:
http://localhost:3001/mcp— ncm-fleethttp://localhost:3002/mcp— ncm-monitoringhttp://localhost:3003/mcp— ncm-cloud-services
4. Run (Local, without Docker)
# Run all 3 servers in a single process (recommended for local dev)
ncm-mcp-servers
# Or via python module
python -m ncm_mcp_serversRun servers individually if you only need a subset:
ncm-fleet # port 3001
ncm-monitoring # port 3002
ncm-cloud-services # port 3003Override ports via environment variables:
NCM_FLEET_PORT=4001 ncm-fleet
NCM_MONITORING_PORT=4002 ncm-monitoring
NCM_CLOUD_SERVICES_PORT=4003 ncm-cloud-services5. Transport Options
The default transport is Streamable HTTP. Supported transports:
Transport | Value | Use case |
Streamable HTTP |
| Recommended for all MCP clients |
SSE |
| Legacy MCP clients using Server-Sent Events |
Stdio |
| Piped MCP clients (single server only) |
# Use SSE transport (legacy)
MCP_TRANSPORT=sse ncm-mcp-servers
# Use stdio (only works with individual servers, not the unified runner)
MCP_TRANSPORT=stdio ncm-fleetMCP Client Configuration
Add to your MCP settings (e.g. .kiro/settings/mcp.json):
{
"mcpServers": {
"ncm-fleet": {
"url": "http://localhost:3001/mcp"
},
"ncm-monitoring": {
"url": "http://localhost:3002/mcp"
},
"ncm-cloud-services": {
"url": "http://localhost:3003/mcp"
}
}
}Tool Consolidation Strategy
CRUD operations are consolidated into manage_* tools with an action parameter:
manage_router(action="rename", router_id=123, new_name="foo")
manage_router(action="delete", router_id=123)
manage_router(action="update", router_id=123, description="bar")Read-only metrics are consolidated by type:
get_net_device_metrics(metric_type="signal", net_device=1)
get_net_device_metrics(metric_type="usage", net_device=1)
get_net_device_metrics(metric_type="wan", net_device=1)
get_net_device_metrics(metric_type="modem", net_device=1)Project Structure
ncm_mcp_servers/
├── pyproject.toml
├── Dockerfile
├── docker-compose.yml
├── entrypoint.sh
├── credentials.example.json
├── credentials.json # Your credentials (gitignored)
├── ncm_mcp_servers/
│ ├── shared/ # Common utilities
│ │ ├── ncm.py # NCM API client library
│ │ ├── credentials.py # Credential loading
│ │ ├── error_handler.py # Response/error formatting
│ │ └── client.py # NCM client factory
│ ├── ncm_fleet/ # Fleet management server (port 3001)
│ │ ├── server.py
│ │ └── tools/
│ │ ├── routers.py
│ │ ├── groups.py
│ │ ├── accounts.py
│ │ ├── locations.py
│ │ ├── configurations.py
│ │ └── firmware.py
│ ├── ncm_monitoring/ # Monitoring server (port 3002)
│ │ ├── server.py
│ │ └── tools/
│ │ ├── net_devices.py
│ │ ├── alerts.py
│ │ └── speed_tests.py
│ └── ncm_cloud_services/ # Cloud services server (port 3003)
│ ├── server.py
│ └── tools/
│ ├── users.py
│ ├── subscriptions.py
│ ├── private_cellular.py
│ └── exchange.py
└── README.mdTool Reference
ncm-fleet (17 tools)
Tool | Description |
| Query routers by ID, name, account, or group |
| Rename, delete, update fields, assign to group/account, remove from group |
| Reboot a single router |
| Reboot all routers in a group |
| Query groups by ID, name, or account |
| Create, rename, delete, update groups |
| Query accounts by ID or name |
| Create, rename, delete subaccounts |
| Query current or historical locations |
| Create or delete router locations |
| Query config sync status |
| Partial config update (router or group) |
| Full config replacement |
| Copy config between routers |
| Resume suspended config sync |
| Query firmware versions by product |
| Query product catalog |
ncm-monitoring (6 tools)
Tool | Description |
| Query net devices by router, mode, connection state |
| Get cellular health scores |
| Signal, usage, WAN, or modem metrics |
| Alerts, recent alerts, router logs, or activity logs |
| Run speed test on devices or all modems on a router |
| Get speed test status and results |
ncm-cloud-services (13 tools)
Tool | Description |
| Query NCM users |
| Create, update, delete users, change role |
| Query subscriptions |
| Regrade or unlicense devices |
| Query private cellular networks |
| Create, update, delete networks |
| Query radios and operational status |
| Update radio settings |
| Query or update SIMs |
| Query exchange sites |
| Create, update, delete sites |
| Query exchange resources |
| Create, update, delete resources |
This server cannot be installed
Maintenance
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/jongaudu/ncm_mcp_servers'
If you have feedback or need assistance with the MCP directory API, please join our Discord server