nana800-mcp-server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_API_KEY | Yes | Your nana800.io API key from cloud.nana800.io/settings. The server stops with an error without it. | |
| MCP_API_URL | No | API origin, https://api.nana800.io by default. | https://api.nana800.io |
| MCP_SCHEME_ID | No | Default scheme ID for tools with an optional scheme_id or scheme. | |
| MCP_PROJECT_ID | No | Default project ID for tools with an optional project_id. | |
| MCP_ANALYTICS_ORG_ID | No | Default analytics org ID for tools with an optional org_id. Get it with analytics_orgs_list or from the org parameter of the analytics page URL. | |
| MCP_ANALYTICS_API_URL | No | Analytics API origin, https://api.analytics.nana800.io by default. | https://api.analytics.nana800.io |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| project_createC | Create a new project in your account. Projects are containers for schemes (automation workflows). |
| project_getC | Get details of a specific project by its ID |
| project_list_by_payment_accountB | Get list of all projects associated with a payment account |
| project_updateC | Update an existing project properties |
| project_deleteA | Delete a project and all its associated schemes. This action is irreversible! |
| scheme_createB | Create a new scheme (automation workflow) within a project |
| scheme_updateC | Update an existing scheme properties |
| scheme_getB | Get details of a specific scheme by its ID |
| scheme_list_by_projectC | Get list of all schemes in a project |
| scheme_get_context_typeC | Get the context type of a scheme |
| scheme_get_swagger_jsonA | Get the OpenAPI 3 document of the scheme webhooks, built from the current blocks: the base URL, every webhook path and method, path params, the query, header and body fields the connected blocks read, and the answers of the connected response blocks. Webhooks that get no requests (empty or wrong path, wrong method, taken by an earlier webhook) are listed in x-nana800-broken-webhooks with the reason. Block secrets are masked for project readers |
| scheme_exportB | Export a scheme configuration (nodes and connections) as JSON |
| scheme_importB | Import nodes into a scheme from exported JSON data |
| scheme_deleteA | Delete a scheme and all its nodes. This action is irreversible! |
| get_nodes_infoA | Get information about available node types (trigger_types, action_types) and their configuration options. Call this first to see available types before creating nodes. |
| node_create_triggerA | Create a new trigger node in a scheme. Triggers start the execution of automation workflows. Call get_nodes_info first to see available types. |
| node_create_actionA | Create a new action node in a scheme. Actions perform operations like sending emails, making HTTP requests, etc. Call get_nodes_info first to see available types. |
| node_updateC | Update an existing node properties |
| node_connectC | Connect two nodes together to create an execution flow |
| node_disconnectC | Disconnect two nodes |
| node_find_existing_buttonsC | Find existing output buttons/connections from a node |
| node_copyC | Create a copy of an existing node |
| node_get_scheme_edgesB | Get all connections (edges) between nodes in a scheme |
| node_getC | Get details of a specific node by its ID |
| node_update_configC | Update the configuration of a node (e.g., email templates, HTTP request settings) |
| node_list_by_schemeB | Get list of all nodes in a scheme |
| node_deleteB | Delete a node from a scheme. This action is irreversible! |
| node_process_getC | Get details of a specific node process execution |
| node_process_list_filteredA | Get filtered list of node processes with pagination. At least one of scheme, node or scheme_process is required |
| node_process_deleteC | Delete a node process record |
| scheme_process_getC | Get details of a specific scheme process (workflow execution instance) |
| scheme_process_list_filteredA | Get filtered list of scheme processes (workflow executions) with pagination. At least one of scheme or project is required |
| scheme_process_deleteC | Delete a scheme process record |
| payment_account_removeC | Remove payment account from user |
| payment_account_updateC | Update payment account settings: name and automatic balance refill |
| payment_account_get_by_userB | Get payment account by user ID |
| payment_account_get_by_projectB | Get payment account by project ID |
| payment_account_get_transactionsC | Get payment transactions history for an account |
| analytics_orgs_listA | List analytics orgs the API key owner is a member of (_id, org_name). Use the org _id as org_id in the other analytics tools or set it as MCP_ANALYTICS_ORG_ID. In the analytics web app the org ID is the "org" parameter of the page URL |
| analytics_projects_listA | List app projects of an analytics org (org_id from analytics_orgs_list or MCP_ANALYTICS_ORG_ID). Use the project _id as app_project_id in analytics_event_types_list and analytics_export_create |
| analytics_event_types_listA | List tracked event types of an analytics app project. Use the event type _id as event_type_id in analytics_export_create filters |
| analytics_export_createA | Start a file export of analytics data of an org (org_id from analytics_orgs_list or MCP_ANALYTICS_ORG_ID): EVENTS (events of the org or project), USER_EVENTS (events of one user, user_filter.analytics_user_ids must have exactly one ID) or USERS (users with their properties). Up to 1,000,000 rows per file, is_truncated is true when more rows matched. Limits per org: one active export at a time (HTTP 409 analytics_export_already_running), 10 exports per hour (HTTP 429 analytics_export_hourly_limit), exports started with an API key: one per 10 minutes (HTTP 429 analytics_export_api_key_interval). HTTP 400 analytics_export_invalid_filter means the filter does not fit the export kind, HTTP 403 means the API key user is not a member of the org. The export runs in the background: export_status goes QUEUED -> RUNNING -> DONE or FAILED. Poll analytics_export_status until DONE or FAILED, not more often than once per ~10 seconds. When DONE, download_url is a direct link valid for 15 minutes (call analytics_export_status again for a fresh one). The file is served gzipped with Content-Encoding: gzip: a browser saves plain CSV or JSONL, from a shell use curl --compressed -o file.csv "<download_url>". Files are deleted 7 days after creation. No rows are returned through MCP, only the status and the link. |
| analytics_export_statusA | Get the status of an analytics export and its download link. Returns export_job (export_status, rows_count, is_truncated, file_name, file_size_bytes, error_text, expires_time), download_url and download_url_expires_time. download_url is null until export_status is DONE. The export runs in the background: export_status goes QUEUED -> RUNNING -> DONE or FAILED. Poll analytics_export_status until DONE or FAILED, not more often than once per ~10 seconds. When DONE, download_url is a direct link valid for 15 minutes (call analytics_export_status again for a fresh one). The file is served gzipped with Content-Encoding: gzip: a browser saves plain CSV or JSONL, from a shell use curl --compressed -o file.csv "<download_url>". Files are deleted 7 days after creation. No rows are returned through MCP, only the status and the link. |
| analytics_exports_listA | List the 20 newest analytics exports of an org (org_id from analytics_orgs_list or MCP_ANALYTICS_ORG_ID), newest first, without download links. Call analytics_export_status with an export _id to get its download link |
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 44 tools
Most tools map to a clear resource+action, but some pairs blur together: node_update vs node_update_config, node_get vs node_find_existing_buttons, and node_connect vs node_get_scheme_edges require reading descriptions to pick correctly. The payment_account_get_by_user vs payment_account_get_by_project pair is a similar near-duplicate. Three sub-domains (automation, analytics, payments) are otherwise cleanly separated.
The whole surface is snake_case and predominantly follows resource_verb ordering (project_create, scheme_get, node_delete, analytics_export_status). A few deviations like get_nodes_info use verb-first ordering, and grouping prefixes are long but predictable. Minor inconsistencies, not confusing.
44 tools is heavy for the apparent scope, especially since a large block (analytics_*, payment_account_*) belongs to adjacent but separable products. Many near-sibling tools (node_process_*, scheme_process_*, analytics_export_*) inflate the surface and hurt discoverability for an agent choosing among them.
Coverage is strong: full CRUD on projects, schemes, nodes, edges, and processes, plus import/export, swagger generation, analytics orgs/projects/event-types/exports, and payment transactions. Gaps are minor — e.g., no payment account creation/linking tool and no analytics event-type detail/edit, but agents can work around these.