TMF620 MCP Server
Click on "Deploy 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., "@TMF620 MCP Serverlist all product catalogs in the system"
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.
TMF620 CLI vs MCP
This repo exposes the TMF620 command layer through two interfaces:
a compact HTTP CLI API for progressive discovery
an MCP server used here as a reference surface for benchmarking and testing
Documentation index: docs/README.md
The engine-specific oa-engine CLI-over-HTTP control-plane profile
is maintained in the oa_engine repository; this repository owns the generic
CLI-style HTTP protocol.
Repository layout:
tmf620/- TMF620 mock API, shared client, commands, server, and benchmarktests/- pytest-discoverable wrappers plus standalone conformance, API, and edge-case scriptsdocs/- long-form protocol docs and guidesbenchmarks/- benchmark scripts and baseline datascripts/- repo entrypoint scriptsspecs/- source OpenAPI and protocol specstmf620/config/- TMF620 runtime configuration filesDOMAIN.md/AGENTS.md- repo-level contracts and agent instructionstmf620/config/config.json- canonical runtime data and configuration
The TMF620 sample implementation is kept in a service-local folder so it can be deployed independently of other systems.
The CLI API is the cheaper discovery path for agents that only need one command branch at a time. The MCP server is retained here as a comparison point for discovery payloads, tool-list size, and latency measurements.
The practical reasons to keep both are:
compact discovery: agents can start with
GET /cli/tmf620/catalogmgtinstead of ingesting the full MCP tool list up frontprogressive help: agents can expand one command branch at a time with
helpstronger MCP contracts: MCP tools now expose explicit schemas instead of a generic
argsobjectsimpler automation:
curlworks well for both humans and agents, especially when the command surface is already structuredone shared command layer: the same command definitions back the HTTP CLI API, the MCP reference surface, and the benchmark
TMF620 Product Catalog Management with three layers:
a mock TMF620 API
a shared Python client
two adapters over that client: HTTP CLI API and MCP
This keeps the operational logic in one place while supporting HTTP and MCP adapters over the same TMF620 command set.
Request paths:
HTTP CLI API ->
tmf620/server.py->tmf620/commands.py->tmf620/core.py-> TMF620 APIMCP client ->
tmf620/server.py->tmf620/core.py-> TMF620 API
Components
1. Mock TMF620 API
File: tmf620/mock_api.py
FastAPI-based TMF620 mock server
sample catalogs, offerings, and specifications
Swagger docs
2. Shared TMF620 Client
File: tmf620/core.py
config loading
HTTP request handling
health checks
generic CRUD helpers for TMF620 resources
catalog, category, offering, price, specification, import/export job, and hub operations
3. Shared Command Layer
File: tmf620/commands.py
canonical TMF620 command registry
machine-readable discover/help payloads
structured command invocation shared by shell and HTTP adapters
4. MCP + HTTP CLI Adapter
File: tmf620/server.py
FastAPI + the official MCP SDK (
FastMCP)exposes
/cli/tmf620/catalogmgtas the primary HTTP CLI endpointkeeps
/cliand/api/clias compatibility aliasesexposes explicit MCP tools for benchmarking and test coverage
delegates HTTP CLI requests into
tmf620/commands.pydelegates MCP tools into the shared command layer
Use the TMF620 compose file for the mock API + MCP server.
docker compose -f docker-compose.yml up --buildTMF620 stack exposes:
mock API at
http://localhost:8801/tmf-api/productCatalogManagement/v5MCP transport at
http://localhost:7701/mcpHTTP CLI API at
http://localhost:7701/cli/tmf620/catalogmgt
The containers use environment overrides rather than rewriting config files. Set them in the matching compose file, or use a .env file with Docker Compose:
TMF620_API_URL
Related MCP server: Cisco Catalog MCP Server
Without Docker
Use this path for local development with uv.
Install dependencies
uv syncStart the mock API
uv run tmf620-mock-serverUse the HTTP CLI API
curl http://localhost:7701/cli/tmf620/catalogmgt
curl "http://localhost:7701/cli/tmf620/catalogmgt?verbose=true"
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"help","args":{"command":"offering patch"}}'
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog list","args":{"lifecycle_status":"Active","limit":5}}'Start the MCP server
uv run tmf620-mcp-serverDefault MCP server URL:
http://localhost:7701Configuration
tmf620/config/config.json is used by both the HTTP CLI API and MCP server:
{
"mcp_server": {
"host": "localhost",
"port": 7701,
"name": "TMF620 Product Catalog API"
},
"tmf620_api": {
"url": "http://localhost:8801/tmf-api/productCatalogManagement/v5"
}
}Environment variables override file values at runtime:
TMF620_API_URL
You can also override the config path with TMF620_CONFIG_PATH.
HTTP CLI Commands
# Discovery
curl http://localhost:7701/cli/tmf620/catalogmgt
curl "http://localhost:7701/cli/tmf620/catalogmgt?verbose=true"
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"help","args":{"command":"offering"}}'
# Read/list commands
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog list","args":{"limit":5}}'
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog list","args":{"lifecycle_status":"Active","limit":5}}'
# Create/patch commands use JSON bodies because TMF620 resource payloads are wide
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog create","args":{"body":{"name":"Business Catalog","lifecycleStatus":"Active"}}}'MCP Usage
Example Claude Desktop config:
{
"mcpServers": {
"tmf620-mcp": {
"command": "uv",
"args": ["run", "tmf620-mcp-server"],
"cwd": "/path/to/tmf620-mcp-server"
}
}
}Available MCP tools:
tmf620_healthtmf620_configtmf620_discoverone explicit tool per leaf command in
tmf620/commands.py
Testing
# Mock API
curl http://localhost:8801/tmf-api/productCatalogManagement/v5/productCatalog
# HTTP CLI API
curl http://localhost:7701/cli/tmf620/catalogmgt
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt -H "Content-Type: application/json" -d '{"command":"catalog list","args":{}}'
# MCP server
curl http://localhost:7701/health
# Pytest suite
pytest testsToken Benchmark
Use the built-in benchmark to measure the live MCP tool payload alongside the compact HTTP CLI discovery flow:
uv run tmf620-benchmark token
uv run tmf620-benchmark token --output jsonLatency Benchmark
Use the latency benchmark when you want request-to-answer timing, not just invoke-only timing:
uv run tmf620-benchmark latency 30 --warmup 1Packaging
Console scripts exposed by pyproject.toml:
tmf620-mock-servertmf620-mcp-servertmf620-benchmark
This server cannot be deployed
Maintenance
Related MCP Connectors
Manage your Pollen account: sync, enrich, fix, and publish your store's catalog for AI agents.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to manage an in-memory product catalog with tools to add products, search by name or category, and retrieve product details by ID.-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables LLMs to query the Cisco Commerce Catalog API for product pricing, availability, specifications, service options, and end-of-life information across 21 regional price lists.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to interact with commercetools APIs to manage products, categories, orders, carts, and customer data. It provides a comprehensive set of tools for both read-only and full-access operations through secure authentication methods.4MIT
- FlicenseNot gradedqualityDmaintenanceProvides tools for managing a product catalog, including functions to list, add, and retrieve product statistics. It enables AI agents to perform inventory operations and data analysis through a standardized interface.-