syntx-ai-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYNTX_LANG | No | Locale for API (e.g., language of plan responses). Does not affect model generation language. | en |
| SYNTX_TOKEN | No | Bearer token for syntx.ai. Required for most operations (can be set at runtime via set-token). | |
| SYNTX_WS_URL | No | Base URL for WSS endpoint. | wss://api.syntx.ai/api/v1 |
| MCP_HTTP_PORT | No | HTTP transport port. | 3000 |
| MCP_TRANSPORT | No | MCP server transport. Values: stdio, http. | stdio |
| SYNTX_TIMEOUT | No | HTTP request timeout in milliseconds. | 30000 |
| MCP_HTTP_TOKEN | No | Bearer token for the MCP server itself (HTTP transport). If set, requests without matching Authorization: Bearer header are rejected (401, timing-safe comparison). If not set, loopback-only + warning. | |
| SYNTX_BASE_URL | No | Base URL of the API. | https://api.syntx.ai |
| SYNTX_DEFAULT_AI | No | Default AI service for send-message/ask. | chatgpt |
| MCP_HTTP_HOSTNAME | No | HTTP transport bind address (loopback by default). | 127.0.0.1 |
| SYNTX_STREAM_MODE | No | Streaming strategy for ask / stream-message. Values: auto, stream, poll, off. | auto |
| SYNTX_POLL_TIMEOUT | No | Maximum waiting time for response in milliseconds. | 600000 |
| SYNTX_DEFAULT_MODEL | No | Default model. | |
| SYNTX_POLL_INTERVAL | No | Polling interval for response in milliseconds. | 5000 |
| SYNTX_LLM_SSE_BASE_URL | No | Base URL for SSE stream used by text-flow llm/*. | https://sse.syntx.ai |
| SYNTX_LLM_MODELS_CACHE_MS | No | TTL of in-memory cache for syntx.llm.listModels() in milliseconds. | 60000 |
| SYNTX_LEGACY_TEXT_TRANSPORT | No | If true, ask / stream-message / send-message / wait-for-response use legacy path chats/{id}/messages with REST polling instead of new llm/* (text-flow + SSE). | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Return an identity check for the current syntx.ai user: { authenticated, user } where |
| set-tokenA | Set or replace the syntx.ai bearer token used by the server at runtime. Call this before any authenticated operation if SYNTX_TOKEN was not configured. The token is held in memory only — it is not persisted to disk and is lost when the process restarts. stdio only: this tool is rejected over the HTTP transport to prevent a remote client from hijacking the process-shared bearer (H4). Configure the token via the SYNTX_TOKEN env variable when running with --transport http. |
| list-auth-identitiesA | List the external identities linked to the current syntx.ai account (Telegram, email, …). Returns a sanitised |
| get-chatwoot-unreadA | Read the support-channel unread state for the current user. Returns |
| get-profileA | Return the current user profile (sanitised public fields: id, user_id, name, username, email, avatar, auth_services). Internal identifiers such as |
| get-balanceA | Return the current token balance for the authenticated user. |
| get-tokens-historyA | Cursor-paginated token-spend history. Wraps |
| list-ai-servicesA | List all syntx.ai AI services (e.g. ChatGPT, Midjourney, Sora) with their scope and status. |
| list-modelsA | List AI models with upload constraints, supported media types, and features. Filters (all optional, combined with AND): |
| list-chatsC | List the user chats, optionally filtered by scope or a search query. |
| create-chatA | Create a new syntx.ai chat session and return its UUID. A title is required by the API. |
| get-messagesB | Return the message history of a chat (by UUID or numeric id). |
| chat-existsA | Pre-flight check: returns whether a chat (by id or uuid) currently exists on the server. Use this before |
| send-messageA | Send a message (prompt) with optional uploaded-file attachments to an existing chat and return immediately. The assistant response is generated asynchronously — poll with |
| wait-for-responseA | Block until the latest assistant message in a chat finishes generating, then return its text and media URLs. Resolves when every message_object[i].completed === true — including image / video / audio / file-only replies. Text-scope chats open an SSE connection on sse.syntx.ai and fall back to REST polling on transport failure. Use after |
| askA | One-shot helper: create a chat, send a prompt, wait for the completed assistant reply, and return it. Ideal for stateless Q&A. The created chat UUID is included in the response for follow-ups. Set |
| stream-messageA | One-shot streaming chat for text scope: opens an SSE connection on sse.syntx.ai, sends the prompt, and streams the assistant reply. Falls back to REST polling on transport failure. Intermediate progress is reported via |
| delete-chatA | Permanently delete a chat. Mirrors |
| get-inprogressA | Return the in-progress generations for a chat. Mirrors |
| get-favorite-messagesA | Return the favorite (bookmarked) messages for a chat. Mirrors |
| cancel-messageA | Cancel an in-flight assistant message generation. Mirrors |
| rename-chatB | Rename a chat. Mirrors |
| delete-messageA | Permanently delete a single message. Mirrors |
| toggle-chat-favoriteA | Toggle the favorite (bookmark) flag of a chat. Mirrors |
| toggle-message-favoriteA | Toggle the favorite (bookmark) flag of a single message. Mirrors |
| generate-imageA | Generate one or more images on syntx.ai using a design service (e.g. sora-images, flux). Requires a target chat UUID; the result includes generation metadata returned by the API. |
| list-uploaded-filesB | List files previously uploaded to the syntx.ai account. |
| list-generated-filesA | List files this account has generated (image / video / audio) — distinct from |
| upload-filesA | Upload one or more files to the syntx.ai account. Each file entry accepts either |
| delete-fileA | Permanently delete an uploaded file. Accepts either |
| transcribeA | Transcribe an audio file to text via syntx.ai (POST /api/v1/audio/transcribe). Provide a single file either as |
| generate-audioA | Generate audio (TTS, voice change, music) via syntx.ai. Mirrors |
| generate-videoA | Generate a video via syntx.ai. Mirrors |
| list-projectsA | List projects (a.k.a. folders) for a given scope. Mirrors |
| create-projectA | Create a syntx.ai project (a.k.a. folder) and optionally seed it with existing chats. Returns the created project as JSON (uuid, title, scope, color, chats). Mirrors |
| add-chats-to-projectA | Add one or more existing chats to an existing project. Mirrors |
| delete-projectA | Permanently delete a syntx.ai project (a.k.a. folder). Mirrors |
| remove-chats-from-projectA | Remove one or more chats from a project. Mirrors |
| update-projectA | Update a project's title and/or color. Mirrors |
| reorder-projectA | Reorder a project within its scope. Mirrors |
| get-llm-limitsA | Return the current LLM usage limits (6h and 7d windows). Each window reports percent_left (0..100), started_at, expires_at. A window with expired or null expires_at is normalized to {percent_left: 100, started_at: null, expires_at: null}. Also returns the subscription |
| get-llm-reset-priceA | Quote the cost of resetting the LLM usage windows. Mirrors |
| list-agentsA | List the AI agents visible to the authenticated account. Mirrors |
| get-agentA | Fetch one agent's full record. Mirrors |
| create-agentB | Create an AI agent. Mirrors |
| update-agentA | Update an AI agent. Mirrors |
| delete-agentA | Permanently delete an AI agent. Mirrors |
| list-agent-filesA | List the files attached to an AI agent. Mirrors |
| add-agent-filesA | Attach one or more files to an AI agent. Mirrors |
| delete-agent-filesB | Remove files from an AI agent. Mirrors |
| list-tariffsA | List plan tariffs (the actual price list). Wraps |
| list-trend-categoriesA | List top-level feed categories used by the home feed. Wraps |
| list-trend-tagsA | List free-form tags used by the home feed. Wraps |
| list-eventsB | Event feed (promotions, milestones, etc.). Wraps |
| list-token-pricingA | Per-model token cost table. Wraps |
| get-prompt-enhancer-costA | Return the token cost of enhancing a prompt for a given model. Wraps |
| start-prompt-enhancementA | Start a prompt-enhancement task. Wraps |
| get-prompt-enhancement-taskA | Poll a prompt-enhancement task. Wraps |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 58 tools
Most tools target distinct resources, but chat/message operations overlap heavily: ask, stream-message, send-message plus wait-for-response, and get-messages vs get-favorite-messages require careful reading. The detailed descriptions help, but the breadth of the surface makes misselection plausible.
Names are consistently kebab-case and mostly follow a verb_noun pattern with predictable resource suffixes. Minor deviations like whoami, ask, transcribe, chat-exists, and get-inprogress keep it from being perfectly uniform.
58 tools is far beyond a practical agent-facing surface, with many niche endpoints for trends, tariffs, token pricing, prompt enhancer, identities, and events. The broad platform scope explains some size, but the selection burden remains extreme.
The surface covers chats, messages, files, projects, agents, models, media generation, billing/limits, and auth extensively. Minor gaps remain, such as quoting LLM reset price without a corresponding reset/purchase action and limited direct chat metadata retrieval.