TDX MCP Server
An MCP server that wraps the TeamDynamix (TDX) REST API, enabling AI-assisted IT service management through natural language. It exposes 41 tools for managing tickets, assets, CMDB, knowledge base articles, and other core TDX domains.
README
TDX MCP Server
A Model Context Protocol (MCP) server that wraps the TeamDynamix (TDX) REST API, enabling AI-assisted IT service management through Claude Desktop, Claude Code, and other MCP clients.
This server exposes 41 tools across 9 domains — tickets, assets, CMDB, knowledge base, people, projects, accounts, groups, and custom attributes — allowing natural language interaction with your TDX instance.
Quick Start
macOS
- Double-click
setup-mac.command - Enter your BEID, Web Services Key, and App ID when prompted
- Restart Claude Desktop
Windows
- Double-click
setup-windows.bat - Enter your BEID, Web Services Key, and App ID when prompted
- Restart Claude Desktop
Manual Setup
npm install
npm run build
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"tdx": {
"command": "node",
"args": ["/path/to/TDX-MCP/dist/index.js"],
"env": {
"TDX_BASE_URL": "https://yourorg.teamdynamix.com/TDWebApi/api",
"TDX_BEID": "your-beid-guid",
"TDX_WEB_SERVICES_KEY": "your-web-services-key-guid",
"TDX_APP_ID": "123"
}
}
}
}
Authentication
This server uses TDX admin token authentication (POST /auth/loginadmin) with a BEID and Web Services Key — not username/password. These are API-specific service account keys that are:
- Not tied to SSO or any user's credentials
- Generated in TDAdmin > Organization Details > API Settings
- Revocable independently without affecting user accounts
- Accessible to any admin with the "Add BE Administrators" permission
Tokens are fetched lazily on the first tool call and auto-refreshed after 23 hours (1-hour buffer before the 24-hour TDX expiry).
Environment Variables
| Variable | Required | Description |
|---|---|---|
TDX_BASE_URL |
Yes | TDX Web API base URL (e.g. https://yourorg.teamdynamix.com/TDWebApi/api) |
TDX_BEID |
Yes | Admin BEID from TDAdmin |
TDX_WEB_SERVICES_KEY |
Yes | Web Services Key from TDAdmin |
TDX_APP_ID |
Yes | Default TDX application ID (integer) |
Tools (41)
All tools that operate within an application accept an optional appId parameter to override the default from TDX_APP_ID.
Tickets (9 tools)
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-ticket-create |
POST | /{appId}/tickets |
Create a new ticket |
tdx-ticket-get |
GET | /{appId}/tickets/{id} |
Get a ticket by ID |
tdx-ticket-update |
POST | /{appId}/tickets/{id} |
Full update of a ticket |
tdx-ticket-patch |
PATCH | /{appId}/tickets/{id} |
Partial update of a ticket |
tdx-ticket-search |
POST | /{appId}/tickets/search |
Search tickets with filters |
tdx-ticket-feed-get |
GET | /{appId}/tickets/{id}/feed |
Get ticket comments/feed |
tdx-ticket-feed-add |
POST | /{appId}/tickets/{id}/feed |
Add a comment to a ticket |
tdx-ticket-add-asset |
POST | /{appId}/tickets/{id}/assets/{assetId} |
Link an asset to a ticket |
tdx-ticket-add-contact |
POST | /{appId}/tickets/{id}/contacts/{uid} |
Add a contact to a ticket |
Assets (7 tools)
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-asset-create |
POST | /{appId}/assets |
Create a new asset |
tdx-asset-get |
GET | /{appId}/assets/{id} |
Get an asset by ID |
tdx-asset-update |
POST | /{appId}/assets/{id} |
Full update of an asset |
tdx-asset-patch |
PATCH | /{appId}/assets/{id} |
Partial update of an asset |
tdx-asset-delete |
DELETE | /{appId}/assets/{id} |
Delete an asset |
tdx-asset-search |
POST | /{appId}/assets/search |
Search assets with filters |
tdx-asset-feed-add |
POST | /{appId}/assets/{id}/feed |
Add a comment to an asset |
CMDB / Configuration Items (7 tools)
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-cmdb-create |
POST | /{appId}/cmdb |
Create a new CI |
tdx-cmdb-get |
GET | /{appId}/cmdb/{id} |
Get a CI by ID |
tdx-cmdb-update |
PUT | /{appId}/cmdb/{id} |
Full update of a CI |
tdx-cmdb-delete |
DELETE | /{appId}/cmdb/{id} |
Delete a CI |
tdx-cmdb-search |
POST | /{appId}/cmdb/search |
Search CIs with filters |
tdx-cmdb-feed-add |
POST | /{appId}/cmdb/{id}/feed |
Add a comment to a CI |
tdx-cmdb-add-relationship |
PUT | /{appId}/cmdb/{id}/relationships |
Add a relationship between CIs |
Knowledge Base (5 tools)
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-kb-create |
POST | /{appId}/knowledgebase |
Create a KB article |
tdx-kb-get |
GET | /{appId}/knowledgebase/{id} |
Get a KB article by ID |
tdx-kb-update |
PUT | /{appId}/knowledgebase/{id} |
Update a KB article |
tdx-kb-delete |
DELETE | /{appId}/knowledgebase/{id} |
Delete a KB article |
tdx-kb-search |
POST | /{appId}/knowledgebase/search |
Search KB articles |
People (4 tools)
These tools do not require an appId.
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-people-get |
GET | /people/{uid} |
Get a person by UID |
tdx-people-search |
POST | /people/search |
Search people with filters |
tdx-people-lookup |
GET | /people/lookup |
Quick lookup by name/email/username |
tdx-people-update |
POST | /people/{uid} |
Update a person |
Projects (4 tools)
These tools do not require an appId.
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-project-create |
POST | /projects |
Create a new project |
tdx-project-get |
GET | /projects/{id} |
Get a project by ID |
tdx-project-update |
POST | /projects/{id} |
Update a project |
tdx-project-search |
POST | /projects/search |
Search projects with filters |
Accounts (2 tools)
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-account-get |
GET | /accounts/{id} |
Get an account/department by ID |
tdx-account-search |
POST | /accounts/search |
Search accounts/departments |
Groups (2 tools)
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-group-get |
GET | /groups/{id} |
Get a group by ID |
tdx-group-search |
POST | /groups/search |
Search groups |
Custom Attributes (1 tool)
| Tool | Method | Endpoint | Description |
|---|---|---|---|
tdx-attributes-get |
GET | /attributes/custom |
Get custom attribute definitions for a component type |
Common componentId values for tdx-attributes-get: 9 = Ticket, 27 = Asset, 63 = CI, 39 = KB Article, 2 = Project.
Example Usage
Once configured, you can use natural language in Claude Desktop or Claude Code:
- "Search for open tickets assigned to me"
- "Get ticket #12345 and show me the comments"
- "Look up john.doe@example.com in TDX"
- "Search the knowledge base for VPN setup instructions"
- "Find all assets in the IT department"
- "Create a ticket for a new software request"
TDX API Documentation
Project Structure
TDX-MCP/
package.json
tsconfig.json
.env.example
setup-mac.command # macOS setup wizard
setup-windows.bat # Windows setup launcher
setup-windows.ps1 # Windows setup wizard
src/
index.ts # Entry point
config.ts # Environment variable loading
auth.ts # Admin token auth with auto-refresh
tdx-client.ts # Shared HTTP client
tools/
tickets.ts # 9 ticket tools
assets.ts # 7 asset tools
cmdb.ts # 7 CMDB/CI tools
kb.ts # 5 knowledge base tools
people.ts # 4 people tools
projects.ts # 4 project tools
accounts.ts # 2 account tools
groups.ts # 2 group tools
attributes.ts # 1 custom attributes tool
Created by University of Montana IT with Claude
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.