Remote MCP Server: Self-Hosted Deployment (Beta)
The Remote MCP setup lets your organization host a single, centrally managed MCP Server instance and share it with all users over HTTPS - eliminating the need for per-user Docker installs, local credential management, or manual update cycles.
With the Docker and NPM setups, every user in your organization installs and runs their own local MCP Server process. Instead the Remote MCP setup deploys a single shared instance on a host machine. Authentication, updates, and credential management are all handled centrally - end users just point their MCP client at a URL and connect.
Getting Started
- Register an OAuth Client
- Configuring Environment Variables
- Run the Remote MCP Container
- Configure MCP Clients
Step 1: Register an OAuth Client
Unlike the local setups (Docker and NPM) which use a Self-Client application, the Remote MCP Server requires a server-based OAuth application that supports Redirect URIs. This is because the server manages the full OAuth authorization flow on behalf of users connecting via the browser.
- Go to the Zoho Developer Console.
- Click Add Client and select Server-based Application (not Self-Client) as the client type.
Set the Authorized Redirect URI to:
Redirect URI:<your-public-url>/auth/callback
Replace <your-public-url> with the public HTTPS URL where you plan to host the Remote MCP Server.
- Save the application and note down the Client ID and Client Secret. These will be used in the environment variables in the next step.
Step 2: Configuring Environment Variables
The Remote MCP Server is configured entirely through a .env file on the host machine. This file is passed to the Docker container at runtime using the --env-file flag. Create this file on your host before proceeding to the next step.
Required Environment Variables
Configure these essential variables before integrating with the MCP Hosts:
Variable | Description |
| ANALYTICS_SERVER_URL | The Zoho Analytics API base URL for your data centre. Example: https://analyticsapi.zoho.com Please refer to the API Specification document for more details. |
| OIDC_PROVIDER_CLIENT_ID | The Client ID from the server-based OAuth application registered in Step 1. |
| OIDC_PROVIDER_CLIENT_SECRET | The Client Secret from the OAuth application. Keep this confidential — do not commit this file to version control. |
| MCP_SERVER_PUBLIC_URL | The fully qualified public HTTPS URL at which your Remote MCP Server will be reachable. This must match the domain used in the redirect URI registered in Step 1. |
| SESSION_SECRET_KEY | A long, randomly generated string used to sign and encrypt user sessions. |
| MCP_SERVER_ORG_IDS | A comma-separated list of Zoho Analytics Organization IDs whose users are permitted to access this Remote MCP Server. Acts as an access control list - users from organizations not listed here will be denied. |
| PORT (Optional) | Overrides the default port the server listens on. Default: 4000 |
| STORAGE_BACKEND | "memory" (default) or "redis" for distributed storage |
| REDIS_HOST / REDIS_PORT / REDIS_PASSWORD (Optional) | Connection details for your Redis instance. Only required when STORAGE_BACKEND=redis. |
Step 3: Run the Remote MCP Container
The Remote MCP Server runs from the same Docker image as the local setup but uses the remote-v1 tag, which includes the HTTP server and authentication layer required for shared, multi-user operation. Start the container on your host machine using the command below.
docker run --name remote-mcp-server \
--network=host \
--env-file .env \
zohoanalytics/mcp-server:remote-v1
Step 4: Configure MCP Clients
Once the Remote MCP Server is running and reachable at its public URL, users do not need to install or configure anything locally. All they need to do is add a short entry to their MCP host configuration file pointing at the hosted server URL.
Any MCP host that supports the HTTP transport can connect to your Remote MCP Server. The configuration is the same regardless of which AI tool the user is connecting from - only the file location and enclosing key differ per host.
Client Configuration
Add the following to the MCP host configuration file. Replace <hosted-mcp-server-url> with the actual MCP_SERVER_PUBLIC_URL value from your deployment.
{
"mcpServers": {
"ZohoAnalyticsMCP": {
"url": "<hosted-mcp-server-url>/mcp",
"type": "http"
}
}
}
Tools in Zoho Analytics MCP Server
The Zoho Analytics MCP server provides various tools for interacting with Zoho Analytics.
| Tool | API Used | Description |
| create_workspace | Create Workspace | Creates a new workspace in Zoho Analytics with the given name. |
| create_table | Create Table | Creates a new table in a specified workspace with defined columns. |
| get_workspaces_list | Get All Workspaces | Fetches the list of workspaces in the user's organization. |
| search_views | Get Views | Fetches the list of views (tables, reports, dashboards) within a specified workspace based on the query. |
| get_view_details | Get View Details | Fetches the details of a specific view, including its structure and properties. |
| import_data | Import data - New table | Imports data into a specified table from a file or a list of dictionaries. |
| export_view |
| Exports an object (table, chart, or dashboard) from the workspace in the specified format. |
| query_data | Create Export Job - Using SQL Query | Executes a SQL query on the specified workspace and returns the results. Note: |
| create_aggregate_formula | Add Aggregate Formula | Creates an aggregate formula in a specified table that returns a single aggregate value. |
| create_query_table | Create Query Table | Creates a query table based on a SQL query for derived data views. |
| create_chart_report | Create Report | Creates a chart report (bar, line, pie, scatter, bubble) in the specified workspace. |
| create_pivot_report | Create Report | Creates a pivot table report for multidimensional data analysis. |
| create_summary_report | Create Report | Creates a summary report that groups data by specified columns and applies aggregate functions. |
| add_row | Add row | Adds a new row to a specified table. |
| update_rows | Update row | Updates rows in a specified table based on given criteria. |
| delete_rows | Delete row | Deletes rows from a specified table based on given criteria. |
| delete_view | Delete View | Deletes a view (table, report, or dashboard) from a workspace. |
| analyse_file_structure | Not Applicable | Analyzes the structure of a CSV or JSON file to determine its columns and data types. |
| download_file | Not Applicable | Downloads a file from a given URL and saves it to a local directory. |
Help & Support
We offer 24x5 technical support (Monday to Friday). In case if you need our assistance kindly do mail us your questions to support@zohoanalytics.com.
You can also reach out to us on our toll-free numbers.
United States: +1 (888) 900 9646
United Kingdom: +44 (20) 35647890
Australia: +61-2-80662898
India: +91 44 6965 6060