Use NeetoDesk in Codex

Connect Codex to the NeetoDesk MCP server and work with your tickets from your editor or terminal, with your NeetoDesk sign-in or an API key.

NeetoDesk mit Codex verbinden

  1. 1Add the server to ~/.codex/config.toml.
  2. 2Run codex mcp login neetodesk and sign in to NeetoDesk in the browser.
[mcp_servers.neetodesk]
url = "https://connect.neetodesk.com/mcp/messages"
Codex

> How many NeetoDesk tickets are open right now?

● neetodesk - ListTickets · 37 found

37 tickets are open. 8 of them have waited more than a day for a first reply.

>

NeetoDesk

Check requirements

  • Codex installed on your computer.
  • A NeetoDesk account.

Connect NeetoDesk to Codex

Add the server to ~/.codex/config.toml:

[mcp_servers.neetodesk]
url = "https://connect.neetodesk.com/mcp/messages"

Then run this command and sign in to NeetoDesk in the browser:

codex mcp login neetodesk
Terminal recording of Codex connected to NeetoDesk. Codex is asked how many tickets are open. Codex calls ListTickets, reports 35 open tickets grouped by theme, and lists the three oldest.
Codex answers from your NeetoDesk data in the terminal.

Connect with an API key

An API key reaches the whole workspace, not only what you can see. It is not tied to a person, and role checks do not run. Use a key for automation that must see every ticket. Do not use one on a machine where the person should see only their own tickets.

It is the same key the REST API uses. Learn how to generate your API key.

Every client sends the key in this header:

Authorization: Bearer YOUR_API_KEY

Replace YOUR_API_KEY with a key from your workspace.

Add the server to ~/.codex/config.toml:

[mcp_servers.neetodesk]
url = "https://connect.neetodesk.com/mcp/messages"
bearer_token_env_var = "NEETODESK_API_KEY"

Set NEETODESK_API_KEY to your API key in the shell where you run Codex. Codex takes the name of the variable, not the key itself.

Try these prompts

Once you are connected, ask in plain language. You can name a ticket by its number, so #42 is enough.

Read a ticket

Show me ticket #42 with its full description.

List all comments on ticket #42.

Find tickets mentioning "refund not received".

Search matches ticket subjects and comment text. It returns up to 25 recent matches, with a snippet of the comment when the text appears in the conversation.

Attach a file

Attach the image at https://example.com/printer-error.png to ticket #42.

That address is fetched and stored in one step, so it works in any assistant. The address has to be reachable without a login.

File a ticket for customer@example.com about the jammed printer and attach ~/Desktop/printer.png.

A file on your own machine takes an extra step. The assistant reserves the upload, sends the bytes itself, then attaches the result. That needs an assistant that can make an HTTP request of its own. A terminal-based one can, and a chat-only one cannot.

Create and update

Create a ticket for customer@example.com with subject "Login issue" and description "Customer cannot reset their password."

Assign ticket #42 to oliver.smith@example.com.

People and forms

List the team members in my workspace.

Create a customer for sam.smith@example.com named Sam Smith.

List the enabled web forms in my workspace.

Reports

How many tickets changed status in the last 7 days?

Show me agent response-time reports for this month.

Which group had the fastest average resolution time over the last 30 days?

Chain requests together

Find every open ticket about refunds, summarize what each customer is asking for, and draft a holding reply on the oldest one.

Compare this month's agent performance against last month and tell me who improved most.

Ask your assistant to confirm before it posts a reply, changes a ticket's status, or deactivates a team member. MCP actions affect your live workspace.

Troubleshooting

Your AI assistant shows no NeetoDesk tools

Restart the client first. Every client reads its MCP config at startup. On Claude or ChatGPT, confirm that you added the connector and finished the sign-in. In ChatGPT, the plugin is created only after you tick I understand and want to continue.

On a client that reads a config file, check these:

  1. The config key. Claude Code, Cursor, Devin, Antigravity, and Antigravity CLI use mcpServers. VS Code uses servers. Codex uses a [mcp_servers.<name>] section. A server under the wrong key is ignored silently.
  2. The URL key. Antigravity and Antigravity CLI use serverUrl. Claude Code, Codex, Cursor, Devin, and VS Code use url.
  3. The endpoint. It is https://connect.neetodesk.com/mcp/messages, with no trailing slash.
  4. The syntax. In JSON, a trailing comma or an unclosed brace makes the whole file unreadable.

The connection is refused or unauthorized

With an API key, the header must read Bearer YOUR_API_KEY, with the word Bearer and one space before the key. Check that the key is not revoked and that it belongs to the workspace you expect. With OAuth, remove the connector and add it again to start the sign-in over.

More fixes are in the NeetoDesk MCP troubleshooting guide.

Use NeetoDesk in other AI assistants

Prefer the terminal? The NeetoDesk CLI reaches the same data from your shell, your scripts and your coding agent.

Bereit, deinen Kundenservice zu verbessern?

Lass uns jetzt anfangen.