@selfagency/teamdynamix-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +187 -0
- package/index.d.ts +1 -0
- package/index.js +1868 -0
- package/index.js.map +1 -0
- package/package.json +46 -0
package/README.md
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# teamdynamix-mcp
|
|
2
|
+
|
|
3
|
+
A TypeScript [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that exposes [TeamDynamix](https://www.teamdynamix.com/) ITSM capabilities as agent-callable tools. Designed for AI agents and MCP clients that need structured, safety-gated access to TeamDynamix operations.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **11 domain gateway tools** that route validated actions across discovery,
|
|
8
|
+
tickets, relationships, KB, assets, CMDB, people, services, projects,
|
|
9
|
+
time, and reference data
|
|
10
|
+
- **Safe by default**: write tools disabled until explicitly opted in;
|
|
11
|
+
destructive operations require `confirm: true`
|
|
12
|
+
- **Two auth modes**: standard (username/password) and admin (BEID/WebServicesKey)
|
|
13
|
+
- **Rate-limit aware**: auto-retry with backoff on 429 responses
|
|
14
|
+
- **Zod-validated inputs**: schema enforcement before any API call
|
|
15
|
+
- **Agent skill and prompt included**: ready-to-use skill definition for
|
|
16
|
+
GitHub Copilot and compatible agents
|
|
17
|
+
|
|
18
|
+
## Quick start (developer setup)
|
|
19
|
+
|
|
20
|
+
This quick start is for contributors running the server from source in this
|
|
21
|
+
repository. If you are a regular MCP client user, skip to
|
|
22
|
+
[MCP client configuration](#mcp-client-configuration) and use the `npx`
|
|
23
|
+
command examples.
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
# 1. Clone the repository
|
|
27
|
+
git clone https://github.com/selfagency/teamdynamix-mcp.git
|
|
28
|
+
cd teamdynamix-mcp
|
|
29
|
+
|
|
30
|
+
# 2. Install dependencies
|
|
31
|
+
pnpm install
|
|
32
|
+
|
|
33
|
+
# 3. Configure environment
|
|
34
|
+
cp .env.example .env
|
|
35
|
+
# Edit .env with your TeamDynamix credentials and base URL
|
|
36
|
+
|
|
37
|
+
# 4. Start the development server
|
|
38
|
+
pnpm dev
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Minimum required environment variables
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
TEAMDYNAMIX_BASE_URL=https://your-tenant.teamdynamix.com/TDWebApi
|
|
45
|
+
TEAMDYNAMIX_AUTH_MODE=standard # or: admin
|
|
46
|
+
TEAMDYNAMIX_USERNAME=you@example.com # standard mode
|
|
47
|
+
TEAMDYNAMIX_PASSWORD=your-password # standard mode
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
For admin mode, use `TEAMDYNAMIX_BEID` and `TEAMDYNAMIX_WEB_SERVICES_KEY` instead.
|
|
51
|
+
|
|
52
|
+
## MCP client configuration
|
|
53
|
+
|
|
54
|
+
### VS Code (`.vscode/mcp.json`)
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"servers": {
|
|
59
|
+
"teamdynamix": {
|
|
60
|
+
"type": "stdio",
|
|
61
|
+
"command": "npx",
|
|
62
|
+
"args": ["-y", "@selfagency/teamdynamix-mcp"],
|
|
63
|
+
"env": {
|
|
64
|
+
"TEAMDYNAMIX_BASE_URL": "https://your-tenant.teamdynamix.com/TDWebApi",
|
|
65
|
+
"TEAMDYNAMIX_AUTH_MODE": "standard",
|
|
66
|
+
"TEAMDYNAMIX_USERNAME": "you@example.com",
|
|
67
|
+
"TEAMDYNAMIX_PASSWORD": "your-password"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Claude Desktop (`claude_desktop_config.json`)
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"teamdynamix": {
|
|
80
|
+
"command": "npx",
|
|
81
|
+
"args": ["-y", "@selfagency/teamdynamix-mcp"],
|
|
82
|
+
"env": {
|
|
83
|
+
"TEAMDYNAMIX_BASE_URL": "https://your-tenant.teamdynamix.com/TDWebApi",
|
|
84
|
+
"TEAMDYNAMIX_AUTH_MODE": "standard",
|
|
85
|
+
"TEAMDYNAMIX_USERNAME": "you@example.com",
|
|
86
|
+
"TEAMDYNAMIX_PASSWORD": "your-password"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Production (built bundle)
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
pnpm build # outputs to dist/
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"command": "npx",
|
|
102
|
+
"args": ["-y", "@selfagency/teamdynamix-mcp"]
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Verify connectivity
|
|
107
|
+
|
|
108
|
+
After connecting your MCP client, call `teamdynamix_discovery` with:
|
|
109
|
+
|
|
110
|
+
- `action: "server_status"`
|
|
111
|
+
- `payload: {}`
|
|
112
|
+
- `response_format: "json"`
|
|
113
|
+
|
|
114
|
+
A successful response shows `status.configured: true`.
|
|
115
|
+
|
|
116
|
+
## Domain gateway tools
|
|
117
|
+
|
|
118
|
+
Each gateway tool accepts:
|
|
119
|
+
|
|
120
|
+
- `action`: domain-specific operation name
|
|
121
|
+
- `payload`: object for that action’s parameters
|
|
122
|
+
- `response_format`: `"markdown"` or `"json"`
|
|
123
|
+
|
|
124
|
+
| Domain | Gateway tool |
|
|
125
|
+
| -------------------- | ---------------------------------- |
|
|
126
|
+
| Discovery | `teamdynamix_discovery` |
|
|
127
|
+
| Tickets | `teamdynamix_tickets` |
|
|
128
|
+
| Ticket relationships | `teamdynamix_ticket_relationships` |
|
|
129
|
+
| Knowledge Base | `teamdynamix_knowledge_base` |
|
|
130
|
+
| Assets | `teamdynamix_assets` |
|
|
131
|
+
| CMDB | `teamdynamix_cmdb` |
|
|
132
|
+
| People | `teamdynamix_people` |
|
|
133
|
+
| Services | `teamdynamix_services` |
|
|
134
|
+
| Projects | `teamdynamix_projects` |
|
|
135
|
+
| Time | `teamdynamix_time` |
|
|
136
|
+
| Reference data | `teamdynamix_reference_data` |
|
|
137
|
+
|
|
138
|
+
† Requires `confirm: true` in addition to write tools being enabled.
|
|
139
|
+
|
|
140
|
+
All write/mutating actions require `TEAMDYNAMIX_ENABLE_WRITE_TOOLS=true`.
|
|
141
|
+
|
|
142
|
+
## Safety defaults
|
|
143
|
+
|
|
144
|
+
| Flag | Default | Effect when `true` |
|
|
145
|
+
| -------------------------------- | ------- | ------------------------------------------------ |
|
|
146
|
+
| `TEAMDYNAMIX_ENABLE_WRITE_TOOLS` | `false` | Enables all create/update/comment/mutation tools |
|
|
147
|
+
| `TEAMDYNAMIX_ENABLE_ADMIN_TOOLS` | `false` | Enables admin-scope operations |
|
|
148
|
+
|
|
149
|
+
Destructive unlink operations additionally require `confirm: true` in the
|
|
150
|
+
tool call regardless of write flag state.
|
|
151
|
+
|
|
152
|
+
## Agent skill
|
|
153
|
+
|
|
154
|
+
This repository ships a GitHub Copilot-compatible skill definition:
|
|
155
|
+
|
|
156
|
+
- **Skill**: [`skills/teamdynamix/SKILL.md`](skills/teamdynamix/SKILL.md)
|
|
157
|
+
— ID-first workflow patterns, safety branching rules, runbooks,
|
|
158
|
+
gotchas, and tool catalog
|
|
159
|
+
- **Agent prompt**:
|
|
160
|
+
[`prompts/teamdynamix-agent.prompt.md`](prompts/teamdynamix-agent.prompt.md)
|
|
161
|
+
— system prompt for agent mode with TeamDynamix context
|
|
162
|
+
|
|
163
|
+
Install the skill via your Copilot skill configuration
|
|
164
|
+
(see `skills/teamdynamix/SKILL.md` for full details).
|
|
165
|
+
|
|
166
|
+
## Documentation
|
|
167
|
+
|
|
168
|
+
| Section | Purpose |
|
|
169
|
+
| ----------------------------------------------- | ------------------------------------------------------------ |
|
|
170
|
+
| [Tutorials](docs/tutorials/index.md) | Step-by-step setup and first workflows |
|
|
171
|
+
| [How-to guides](docs/how-to/index.md) | Task-oriented recipes for real operations |
|
|
172
|
+
| [Reference](docs/reference/index.md) | Exhaustive tool catalog, configuration, safety model, errors |
|
|
173
|
+
| [Explanation](docs/explanation/index.md) | Architecture, auth model, safety rationale, rate limiting |
|
|
174
|
+
| [Development](docs/development/architecture.md) | Architecture, contributing, testing |
|
|
175
|
+
|
|
176
|
+
## Development
|
|
177
|
+
|
|
178
|
+
```sh
|
|
179
|
+
pnpm typecheck # TypeScript strict checks
|
|
180
|
+
pnpm lint # oxlint
|
|
181
|
+
pnpm test # vitest (194 tests, 87% coverage)
|
|
182
|
+
pnpm build # tsup → dist/
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## License
|
|
186
|
+
|
|
187
|
+
MIT © [Daniel Sieradski](https://self.agency)
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|