# TM OIP MCP

> Telekom Malaysia (TM) OIP MCP Server connects your AI agent directly to TM's service provisioning backend. It manages the full lifecycle of telecom services, letting you programmatically check coverage, list product plans, file new orders for broadband or mobile lines, and retrieve billing data.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** telekom-malaysia, tm-oip, tmf-forum-api, broadband-management, service-ordering, network-usage, unifi-malaysia

## Description

This MCP connects your AI agent straight into Telekom Malaysia's service provisioning backend. You can manage the entire lifecycle of telecom services—from checking if coverage even reaches an address, to submitting a full order for a new line, and pulling detailed billing reports. It’s everything you need to automate how you handle broadband or mobile accounts.

**Discovery and Planning:**
You gotta know what's available before you pitch anything. You can use `list_product_offerings` to get a massive list of every single telecom product plan out there, plus the details on each one via `get_offering_details`. This lets your agent pull specs and pricing for any specific broadband or mobile package. Before you even commit, though, you'll want to run `check_service_availability` against a street address. That tells you right away if the service lines can actually reach that location.

**Account Setup and Orders:**
When you're ready to sell something, you submit an order using `create_service_order`. This handles setting up brand new services or upgrading existing ones for a customer. You don't want to lose track of what you sent out, so the system lets you check on that process status anytime with `get_order_details`. To keep tabs on everything currently active, you can run `list_active_services` which shows every service associated with an account in the inventory.

**Monitoring and Usage:**
Once the line is live, monitoring it is key. You get real-time operational status for any existing service using `get_service_status`. If you need to check how much data a user's service has been eating up over time, run `get_usage_report` against that specific service ID. For troubleshooting, your agent can pull every open or active support ticket related to network issues by calling `list_trouble_tickets`.

**Billing and Account Management:**
For the money stuff, you've got two main tools. First, run `get_account_billing` to grab current billing details and general account info for the user. Second, if you need a complete rundown of every service attached to the customer, `list_active_services` gives you that full list. You can also pull up all historical usage reports using data from `get_usage_report`.

Basically, this server lets your agent handle everything: checking coverage via `check_service_availability`, finding product specs with `get_offering_details`, submitting orders via `create_service_order`, tracking service status with `get_service_status`, pulling billing records with `get_account_billing`, and getting usage data using `get_usage_report`.

## Tools

### check_service_availability
Verifies if broadband service is available at a specified street address.

### create_service_order
Submits an order to set up new broadband or mobile services for a customer.

### get_account_billing
Retrieves current billing details and general account information for the user.

### get_offering_details
Fetches detailed specifications and pricing for one specific product plan ID.

### get_service_status
Gets the real-time operational status for an existing, active service line.

### get_order_details
Checks the current status of a service order that was previously submitted.

### get_usage_report
Generates a detailed report tracking data consumption for a specific service ID over time.

### list_product_offerings
Retrieves a comprehensive list of all available broadband and telecom product plans.

### list_active_services
Lists all services currently associated with the account in the system inventory.

### list_trouble_tickets
Lists any open or active support tickets related to network issues for the account.

## Prompt Examples

**Prompt:** 
```
Check broadband availability for address '123 Jalan Ampang, Kuala Lumpur'.
```

**Response:** 
```
Connecting to TM OIP service qualification engine... Good news! Broadband services are available at that location. Supported services include UniFi Home 100Mbps and 300Mbps. Would you like to see the pricing for these plans?
```

**Prompt:** 
```
List the top 3 unifi plans from the product catalog.
```

**Response:** 
```
Retrieving TM product catalog... I've found the top 3 unifi offerings: 1. UniFi Home 800Mbps (ID: off_1), 2. UniFi Home 300Mbps (ID: off_2), 3. UniFi Home 100Mbps (ID: off_3). All plans include free installation. Would you like the full technical specs?
```

**Prompt:** 
```
What is the data usage for service ID 'srv_tm_123' for the last month?
```

**Response:** 
```
Querying TM usage management... For service 'srv_tm_123', the total data consumed in the last 30 days was 450GB. Usage was highest during week 2 (150GB). Would you like a daily breakdown?
```

## Capabilities

### Check Service Availability
Verify if broadband or mobile services reach a specific street address before any commitment is made.

### Manage Product Catalogs
Retrieve current product offerings, including technical specs and pricing for various broadband and mobile plans.

### Submit New Service Orders
Create and track the process for new service installations or existing line upgrades programmatically.

### Monitor Usage Data
Pull detailed reports on data consumption patterns for a specific, active service ID over time.

### View Billing Records
Retrieve account-level billing details and current status using natural language input.

## Use Cases

### New Client Site Assessment
A Property Manager is onboarding a new corporate tenant. They first run `check_service_availability` for the building's main address. Once confirmed, they use `list_product_offerings` to select the right plan and then execute `create_service_order` immediately, submitting the whole process without manual data entry.

### Troubleshooting a Service Outage
A Network Ops engineer gets an alert. They first run `list_active_services` to confirm which lines are affected. Next, they use `get_service_status` on the primary line and then check `list_trouble_tickets` to see if support has already opened a ticket for that incident.

### Quarterly Billing Audit
A System Integrator needs to verify billing discrepancies. They run `get_account_billing` first, and then use `list_active_services` to confirm that all expected services are accounted for before the payment cycle closes.

### Product Comparison Shopping
A client wants to switch plans. They ask the agent to run `list_product_offerings`, identify three potential upgrades, and then use `get_offering_details` on each one to compare the exact data caps and speeds before making a decision.

## Benefits

- You can instantly verify coverage using `check_service_availability`. Instead of manually checking a website with an address form, your agent runs this tool to confirm if broadband lines are available at a specific Kuala Lumpur street address.
- Stop guessing about plans. Use `list_product_offerings` and `get_offering_details` together. You pull the whole catalog list, then drill into one ID to get precise technical specs—all without leaving your chat window.
- The billing headache ends with `get_account_billing`. Instead of calling customer support or navigating complex PDF statements, you ask your agent for 'last month's bill,' and it runs this tool immediately.
- Monitoring usage used to mean logging into a dashboard. Now, running `get_usage_report` pulls 30 days of data consumption directly into the workflow for immediate analysis.
- You can track service deployments end-to-end. File an order with `create_service_order`, and then minutes later use `get_order_details` to check if it moved from 'Submitted' to 'In Progress.'
- Need a quick status update? Running `list_trouble_tickets` gives you an immediate rundown of all open network issues, preventing redundant support calls.

## How It Works

The bottom line is: you plug in your TM developer keys to let your agent talk directly to the telecommunication backend.

1. First, subscribe to the server. You'll need to register at the TM OIP Developer Portal.
2. Next, create an application in the API Manager and generate your Consumer Key and Secret credentials.
3. Finally, pass those credentials into the fields below so your AI agent can begin running telecom workflows against the live TMF APIs.

## Frequently Asked Questions

**How do I find out what broadband plans are available using list_product_offerings?**
Running `list_product_offerings` gives you a full catalog of all current plans. You can then use the specific IDs returned from that tool to call `get_offering_details` for deep-dive specs and pricing.

**Can I check if an order I placed last week was successful using get_order_details?**
Yes. You pass the service order ID into `get_order_details`. The tool returns the current status, telling you exactly where it is in the fulfillment pipeline (e.g., 'Pending Installation' or 'Complete').

**What if my address isn't supported? Does check_service_availability tell me why?**
The tool confirms service reachability for a given street address. If it fails, the response provides technical details on what services are not viable at that location.

**How do I get my bill details and check if I have any open complaints? Do I need two separate calls?**
You can run `get_account_billing` for payment info, and then immediately follow up with `list_trouble_tickets`. These tools manage different data domains (Finance vs. Support) but give you the full operational picture.

**When I use `create_service_order`, what information do I need to ensure successful service provisioning?**
You must provide the customer's complete physical address, desired plan ID, and a valid billing account identifier. The system validates these inputs against TM’s core records before submitting the order.

**If `get_service_status` returns an error code, how do I determine if it’s my end or their end?**
Check the specific error code returned by the call. If the service is marked 'Suspended' or 'Inactive', use `list_trouble_tickets` to check for existing reported network outages.

**How can I efficiently monitor multiple locations using `list_active_services`?**
The tool accepts an array of service IDs, allowing you to pull inventory status across multiple sites in a single request. This is ideal for property managers handling many properties.

**When I run `get_usage_report`, what parameters control the data granularity and time frame?**
You define the date range using start and end timestamps, and you specify the breakdown frequency (e.g., daily or weekly) in the payload. This lets you focus only on the consumption patterns that matter.

**Is this API compliant with TM Forum standards?**
Yes! TM is a global leader in TMF compliance. This MCP uses standard endpoints like TMF 620 (Catalog) and TMF 641 (Ordering) for maximum interoperability.

**Can I check if UniFi is available at a specific address?**
Yes! Use the `check_service_availability` tool with the full street address. Your agent will return the qualification results for broadband services at that location.

**How do I monitor data consumption for an active account?**
Use the `get_usage_report` tool with the Service ID. It will retrieve real-time volume data and usage patterns associated with that specific broadband or mobile line.