Partiri Cloud MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP server port. | 3000 |
| MCP_BASE_URL | No | Public URL of the MCP server. Required for HTTP transport in production. | http://localhost:{PORT} |
| MCP_DATA_DIR | No | Persistent directory for client registrations and token secret. | |
| MCP_READONLY | No | When truthy, only read-only tools are registered. | false |
| MCP_TRANSPORT | No | Transport mode: stdio or http. | stdio |
| PARTIRI_API_KEY | No | API key for the Partiri REST API. Required for stdio transport. | |
| PARTIRI_API_URL | No | Partiri API base URL. | https://api.partiri.cloud |
| PARTIRI_TIMEOUT | No | API request timeout in seconds. | 30 |
| PARTIRI_WEB_URL | No | Hosted Partiri web app URL for OAuth sign-in redirect. | https://partiri.cloud |
| MCP_MAX_SESSIONS | No | Max concurrent MCP sessions. | 1000 |
| MCP_TOKEN_SECRET | No | 32-byte hex key (64 chars) for token encryption. Required for HTTP transport in production. | |
| MCP_TOOLS_DENYLIST | No | Comma-separated tool names to remove. | |
| MCP_ALLOWED_ORIGINS | No | Comma-separated browser Origins allowed on /mcp. | claude.ai, claude.com, chatgpt.com, chat.openai.com |
| MCP_TOOLS_ALLOWLIST | No | Comma-separated tool names to enable on top of the base set. | |
| MCP_TRUSTED_PROXIES | No | Trusted proxy IP(s)/CIDR(s) for client-IP rate limiting. | loopback |
| MCP_SESSION_TTL_MINUTES | No | Session inactivity timeout in minutes. | 30 |
| MCP_MAX_SESSIONS_PER_KEY | No | Max sessions per API key. | 5 |
| MCP_ALLOWED_REDIRECT_HOSTS | No | Comma-separated OAuth redirect hosts allowed in addition to loopback. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_workspacesA | List all workspaces the authenticated user has access to. Returns id, name, and email for each workspace. Use a workspace id with list_projects, list_pods, or list_regions. |
| get_current_userA | Get the profile of the currently authenticated user. Returns id, email, and name. |
| list_projectsA | List all projects in a workspace. Returns id, name, and environment for each project. Get a workspace id from list_workspaces first. Use a project id with list_services. |
| create_projectA | Create a new project in a workspace. Returns the created project with its id. Get a workspace id from list_workspaces first. |
| list_podsA | List available compute pods (instance types) for a workspace. Returns id, name, label, cpu, and ram for each pod. Use a pod id when creating a service with create_service. |
| list_regionsA | List available deployment regions for a workspace. Returns id, name, label, and country_code for each region. Use a region id when creating a service with create_service. |
| get_pricingA | Get pod and volume pricing for a region. Returns pod prices (monthly, per-minute) and volume price per GB per month. Use a region id from list_regions. Useful for estimating monthly cost before creating a service. |
| get_balanceA | Get the current workspace balance. Returns currency, amount, and last-updated timestamp. Requires billing:r permission — degrades gracefully (returns null) on a 403. Use this to warn the user before creating services. |
| validate_serviceA | Preflight-validate a service configuration before creating or updating it. Checks source XOR rule (repository vs registry), deploy_type/runtime compatibility, and name length (≤16). When probeReachability is set, performs an OUTBOUND network probe of the supplied git repository or registry URL (not side-effect-free). Returns a list of checks with ok/fail status. |
| list_volumesA | List persistent volumes in a project. Returns id, name, size, mount_path, status, and attached service for each volume. Status can be: pending, provisioning, available, attached, deleting, or failed. |
| get_volumeA | Get details of a single persistent volume by ID. |
| list_servicesA | List all services in a project. Returns a summary (id, name, runtime, deploy_type, deploy_tag, active) for each service — call get_service for full configuration. Get a project id from list_projects first. Returns at most |
| get_serviceA | Get full configuration of a service including repository, build commands, region, pod, and deploy tag. Environment variables are omitted from the response — they hold secrets and are managed out-of-band via the partiri CLI (see use_partiri_cli). Use list_services to find service IDs. |
| create_serviceA | Create a new service in a project. Requires exactly one source (repository URL or registry URL), a compute pod, and a region. Get IDs from list_projects, list_pods, and list_regions. Returns the created service with its id. Supported deploy types: webservice, static, private-service, worker (long-running background process with no inbound network — no port, no URL, no health check); for static the runtime is forced to "static" server-side. Environment variables are NOT set here — manage them with the partiri CLI (see use_partiri_cli). |
| update_serviceA | Update an existing service configuration. Only include fields you want to change. Use get_service to see current values first. Environment variables are NOT managed here — use the partiri CLI (see use_partiri_cli). |
| deploy_serviceA | Trigger a new deployment. Checks workspace balance and enforces a 10-minute cooldown. Use list_jobs to check deployment status afterward. |
| pause_serviceA | Pause a running service. The service will stop receiving traffic but can be unpaused later. |
| unpause_serviceA | Resume a paused service. |
| list_jobsA | List deployment jobs for a service. Returns job id, type, status (open, in_progress, succeeded, failed, canceled, timed_out), and timestamps. Use after deploy_service to track progress. |
| get_cpu_metricsA | Get CPU usage metrics (average, peak, current in cores) for a service. Automatically uses the current deploy tag if not specified. Use get_service to find service IDs. |
| get_memory_metricsA | Get memory usage metrics (average, peak, current in bytes) for a service. Automatically uses the current deploy tag if not specified. Use get_service to find service IDs. |
| get_network_metricsA | Get network download and upload metrics (bytes/s) for a service. Automatically uses the current deploy tag if not specified. Use get_service to find service IDs. |
| use_partiri_cliA | Guidance for running the locally-installed |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Platform overview | What Partiri Cloud is, supported service types, and infrastructure overview |
| First deployment guide | Step-by-step guide to deploying your first application on Partiri |
| FAQ | Frequently asked questions about domains, regions, billing, private repos, and free tier |
| Migration guide | How to migrate from Heroku, Railway, or Render to Partiri |
| Security & compliance | GDPR compliance, container isolation, TLS, and API security details |
| Troubleshooting | Common issues: build failures, startup crashes, health checks, stuck deployments, DNS |
| Web service | Public-facing web services with custom domains and TLS |
| Private service | Internal services not exposed to the public internet |
| Worker | Long-running background processes with no inbound network — queue consumers and similar egress-only jobs |
| Static website | Static asset hosting for SPAs, docs sites, and landing pages |
| Persistent storage (volumes) | Persistent volumes for stateful services — read via MCP, mutate via the partiri CLI |
| Service creation workflow | Step-by-step guide to creating a service with credentials, cost estimate, and storage |
| How deployments work | Overview of the deployment process: source, build, deploy, and tracking |
| Supported runtimes | List of all supported language runtimes: Node.js, Deno, Python, Go, Rust, Ruby, Elixir, PHP, JVM, .NET, C++, Static |
| Git providers | Supported Git providers: GitHub, GitLab, Bitbucket, Codeberg |
| Registry providers | Supported container registries: Docker Hub, AWS ECR, Google Artifact Registry |
| Scaling & pod sizes | Pod sizes, CPU/memory allocation, and billing model |
| Zero-downtime deployments | Rolling update strategy and what happens when deployments fail |
| Rollbacks | How to revert to a previous deployment version |
| Deployment status | Monitoring deployment progress and status tracking |
| Monitoring | Available metrics: CPU, memory, and network traffic charts |
| Framework & runtime guides | Per-runtime deployment guides for all 12 supported languages and static sites |
| Webhooks | Automatic deployments triggered by Git push events |
| Environment variables | How to configure runtime environment variables for services |
| Health checks | Configuring health check endpoints for automatic service monitoring |
| Credentials | Setting up authentication for private Git repos and container registries |
| Deploy hooks | Unique URLs that trigger deployments via HTTP POST for CI/CD pipelines |
| Monorepo support | Deploying multiple services from different subdirectories in one repository |
| API keys | How API key authentication works for the Partiri API and CLI |
| Workspaces | Workspace organization, team members, and role assignment |
| Billing | Pay-as-you-go billing model, workspace balance, and transaction history |
| Team roles | Role-based access control: Admin, Management, and User permissions |
| CLI commands | Complete list of Partiri CLI commands with descriptions |
| .partiri.jsonc config reference | Complete .partiri.jsonc configuration file reference with annotated example and field documentation |
| Service configuration fields | Quick reference for all service configuration fields used in create_service and update_service tools |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Partiri-Cloud/harbor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server