MCP server for TOPdesk API using FastMCP and TOPdeskPy SDK
Project description
topdesk-mcp
This project is a Model Context Protocol (MCP) server implemented in Python. It exposes the Topdesk API via the TOPdeskPy SDK.
Project Purpose
- Acts as an MCP server to bridge MCP clients with the Topdesk API.
- Uses the TOPdeskPy SDK (with some modifications) for all Topdesk API interactions.
MCP Config JSON
{
"servers": {
"topdesk-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"topdesk-mcp"
],
"env": {
"TOPDESK_URL": "<your topdesk URL>",
"TOPDESK_USERNAME": "<your topdesk username>",
"TOPDESK_PASSWORD": "<your topdesk api key>"
}
}
}
}
Environment Variables
TOPDESK_URL: The base URL of your Topdesk instance. e.g.https://yourcompany.topdesk.netTOPDESK_USERNAME: The username you generated the API token against.TOPDESK_PASSWORD: Your API tokenTOPDESK_MCP_TRANSPORT: (Optional) The transport to use: 'stdio', 'streamable-http', 'sse'. Defaults to 'stdio'.TOPDESK_MCP_HOST: (Optional) The host to listen on (for 'streamable-http' and 'sse'). Defaults to '0.0.0.0'.TOPDESK_MCP_PORT: (Optional) The port to listen on (for 'streamable-http' and 'sse'). Defaults to '3030'.
Setup for Local Development
-
Ensure Python 3.11+ is installed.
-
Create and activate a virtual environment:
pip install uv uv venv uv pip install -e . uv pip install -e ".[dev]"
-
Run:
python -m topdesk_mcp.main
Notes:
- The server skeleton was generated using the official MCP server template.
- Contributions are welcome.
Package Structure
topdesk_mcp/ # Directory for the MCP server package
__init__.py # Marks as a Python package
main.py # Entry point for the MCP server
_topdesk_sdk.py # TOPdeskPy SDK
_incident.py # Incidents API
_operator.py # Operator API
_person.py # Person API
_utils.py # Helper methods for Requests
Exposed Tools
-
topdesk_get_fiql_query_howto
Get a hint on how to construct FIQL queries, with examples. -
topdesk_get_object_schemas
Get the full object schemas for TOPdesk incidents and all their subfields. -
topdesk_get_incident
Get a TOPdesk incident by UUID or by Incident Number (I-xxxxxx-xxx). Both formats are accepted. -
topdesk_get_incidents_by_fiql_query
Get TOPdesk incidents by FIQL query. -
topdesk_get_incident_user_requests
Get all user requests on a TOPdesk incident. -
topdesk_create_incident
Create a new TOPdesk incident. -
topdesk_archive_incident
Archive a TOPdesk incident. -
topdesk_unarchive_incident
Unarchive a TOPdesk incident. -
topdesk_get_timespent_on_incident
Get all time spent entries for a TOPdesk incident. -
topdesk_register_timespent_on_incident
Register time spent on a TOPdesk incident. -
topdesk_escalate_incident
Escalate a TOPdesk incident. -
topdesk_get_available_escalation_reasons
Get all available escalation reasons for a TOPdesk incident. -
topdesk_get_available_deescalation_reasons
Get all available de-escalation reasons for a TOPdesk incident. -
topdesk_deescalate_incident
De-escalate a TOPdesk incident. -
topdesk_get_progress_trail
Get the progress trail for a TOPdesk incident. -
topdesk_get_operatorgroups_of_operator
Get a list of TOPdesk operator groups that an op is a member of, optionally by FIQL query or leave blank to return all groups. -
topdesk_get_operator
Get a TOPdesk operator by ID. -
topdesk_get_operators_by_fiql_query
Get TOPdesk operators by FIQL query. -
topdesk_add_action_to_incident
Add an action (ie, reply/comment) to a TOPdesk incident. -
topdesk_get_incident_actions
Get all actions (ie, replies/comments) for a TOPdesk incident. -
topdesk_delete_incident_action
Delete a specific action (ie, reply/comment) for a TOPdesk incident. -
topdesk_get_person_by_query
Get TOPdesk persons by FIQL query. -
topdesk_get_person
Get a TOPdesk person by ID. -
topdesk_create_person
Create a new TOPdesk person. -
topdesk_update_person
Update an existing TOPdesk person. -
topdesk_archive_person
Archive a TOPdesk person. -
topdesk_unarchive_person
Unarchive a TOPdesk person.
References
License
MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file topdesk_mcp-0.7.0.tar.gz.
File metadata
- Download URL: topdesk_mcp-0.7.0.tar.gz
- Upload date:
- Size: 53.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55ecdbfacfd01e1f72cbce419271dda7d43cfb9af05d60a1c74bf7f29ecc0db6
|
|
| MD5 |
a8670fbe0810497bcabcc84e37058721
|
|
| BLAKE2b-256 |
925784951d185454be1c557a4cd43a5ca057bd2ddf228de654d61357bd4e4fa9
|
Provenance
The following attestation bundles were made for topdesk_mcp-0.7.0.tar.gz:
Publisher:
pypi.yml on dbsanfte/topdesk-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topdesk_mcp-0.7.0.tar.gz -
Subject digest:
55ecdbfacfd01e1f72cbce419271dda7d43cfb9af05d60a1c74bf7f29ecc0db6 - Sigstore transparency entry: 221903101
- Sigstore integration time:
-
Permalink:
dbsanfte/topdesk-mcp@411fca75d62bc603b65b3ee5c7a81263324ac423 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/dbsanfte
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@411fca75d62bc603b65b3ee5c7a81263324ac423 -
Trigger Event:
release
-
Statement type:
File details
Details for the file topdesk_mcp-0.7.0-py3-none-any.whl.
File metadata
- Download URL: topdesk_mcp-0.7.0-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e7c1674943d0f17c869a6ad85e0cdd82b6a78395a2538af5a72ed61fd5bf79a
|
|
| MD5 |
677ee79c98910ac8c3efc064505ffa0e
|
|
| BLAKE2b-256 |
a40260e4b8fb2d5ca59470d5c4bdd279d0eb15b9455c1c3c197aa2e88ffd8577
|
Provenance
The following attestation bundles were made for topdesk_mcp-0.7.0-py3-none-any.whl:
Publisher:
pypi.yml on dbsanfte/topdesk-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topdesk_mcp-0.7.0-py3-none-any.whl -
Subject digest:
8e7c1674943d0f17c869a6ad85e0cdd82b6a78395a2538af5a72ed61fd5bf79a - Sigstore transparency entry: 221903111
- Sigstore integration time:
-
Permalink:
dbsanfte/topdesk-mcp@411fca75d62bc603b65b3ee5c7a81263324ac423 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/dbsanfte
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@411fca75d62bc603b65b3ee5c7a81263324ac423 -
Trigger Event:
release
-
Statement type: