About 1NCE API MCP Server
An MCP server connecting AI agents to the 1NCE IoT connectivity management platform. It supports teams managing SIM cards and orders, exposing 1NCE API operations through OAuth 2.0 along with resources and prompts.
Key features
- 01OAuth 2.0 authentication
- 02Query products and manage orders
- 03Inspect SIM status and usage
- 04Update SIM settings and reset connectivity
- 05Resources and predefined prompts
Use cases
- 01Review available IoT connectivity products
- 02Create orders and track their status
- 03Check SIM status, quotas, and usage
- 04Update SIM settings or reset connectivity
MCP support
The server exposes 1NCE product, order, and SIM management tools to MCP clients, along with SIM status and product resources and prompts for common tasks.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README1NCE IoT Platform MCP Server
A Model Context Protocol (MCP) server that enables AI agents to interact with the 1NCE IoT connectivity management platform through natural language.
Overview
This project provides a middleware layer that connects Large Language Models (LLMs) to the 1NCE API for managing IoT connectivity. It allows AI assistants to:
- Retrieve product information
- Manage orders
- Monitor SIM card status
- Check data and SMS quotas
- Update SIM configurations
- View connectivity information
By exposing these capabilities through the Model Context Protocol, AI agents can interact with IoT infrastructure using natural language, simplifying the management of connected devices.
Features
- Authentication: Secure OAuth 2.0 token-based authentication with 1NCE API
- Product Management: Query available IoT connectivity products
- Order Management: Create and track orders
- SIM Management: Monitor and configure SIM cards
- Resources: Direct access to SIM status and product data
- Prompts: Pre-defined interaction templates for common tasks
Prerequisites
- Python 3.8+
- FastMCP v2
- 1NCE account with API credentials
Installation
- Clone this repository
git clone https://github.com/yourusername/1nce-mcp-server.git
cd 1nce-mcp-server
- Install required dependencies
pip install fastmcp httpx
- Set environment variables with your 1NCE API credentials
export ONCE_CLIENT_ID="your_client_id"
export ONCE_CLIENT_SECRET="your_client_secret"
Usage
Installing with FastMCP
The recommended way to use this MCP server is to install it using the FastMCP CLI:
fastmcp install 1nce_mcp.py
This will make the server available to compatible MCP clients, including Claude Desktop.
Running Directly
For development or testing, you can run the server directly:
python 1nce_mcp.py
Using with a Client
You can interact with the server programmatically using the FastMCP client:
from fastmcp import Client
async with Client("1nce_mcp.py") as client:
# Get list of products
products = await client.call_tool("get_all_products")
print(products)
# Check SIM status
sim_status = await client.call_tool("get_sim_status", {"iccid": "your_sim_iccid"})
print(sim_status)
Available Tools
Product Tools
get_all_products()- Retrieve all available 1NCE products
Order Tools
get_all_orders(page, page_size, sort)- Get list of orders with paginationget_order_by_number(order_number)- Get details of a specific ordercreate_order(products, delivery_address, customer_reference)- Create a new order
SIM Tools
get_all_sims(page, page_size, query, sort)- List SIM cards with filtering optionsget_sim_details(iccid)- Get detailed information about a specific SIMget_sim_status(iccid)- Check the connectivity status of a SIMget_sim_data_quota(iccid)- Check remaining data quota for a SIMget_sim_sms_quota(iccid)- Check remaining SMS quota for a SIMupdate_sim_status(iccid, status, label, imei_lock)- Update SIM configurationget_sim_usage(iccid, start_date, end_date)- Get usage statistics for a time periodget_sim_events(iccid, page, page_size, sort)- Get event history for a SIMreset_sim_connectivity(iccid)- Trigger a connectivity reset for a SIM
Examples
Checking SIM Status
from fastmcp import Client
async with Client("1nce_mcp.py") as client:
# Check SIM status
sim_status = await client.call_tool("get_sim_status", {
"iccid": "8988303000123456789"
})
print(f"SIM Status: {sim_status.get('status')}")
# Check data quota
quota = await client.call_tool("get_sim_data_quota", {
"iccid": "8988303000123456789"
})
print(f"Remaining data: {quota.get('volume')} MB")
print(f"Expires on: {quota.get('expiry_date')}")
Creating an Order
from fastmcp import Client
async with Client("1nce_mcp.py") as client:
# Create an order for 5 SIM cards
order = await client.call_tool("create_order", {
"products": [{"productId": 1001, "quantity": 5}],
"customer_reference": "IoT-Project-XYZ"
})
print(f"Order created with number: {order.get('order_number')}")
Security
- The MCP server requires 1NCE API credentials to be set as environment variables
- Authentication is performed using OAuth 2.0 with Basic Authentication
- Access tokens are obtained dynamically and not stored persistently
- The server only exposes necessary API operations, prioritizing read operations over write operations
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.