vremly
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vremlyFind endpoints for listing my upcoming shoots"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vremly MCP server
Gives an AI assistant access to the Vremly API over the Model Context Protocol — so it can look up your shoots, customers, media and invoices, and change them if you let it.
Full documentation: docs.vremly.com/guides/mcp
Install
Create an API key in the Vremly app under Settings → API Keys, then add this to your MCP host's config:
{
"mcpServers": {
"vremly": {
"command": "npx",
"args": ["-y", "github:RelayDigital/vremly-mcp"],
"env": {
"VREMLY_API_KEY": "your-api-key"
}
}
}
}For Claude Code, that goes in .mcp.json in your project, or run:
claude mcp add vremly --env VREMLY_API_KEY=your-api-key \
-- npx -y github:RelayDigital/vremly-mcpThere is nothing to clone or build — npx fetches the repo and compiles it on
first run.
Configuration
Variable | Default | Purpose |
| (required) | Your organization API key. |
|
| API base URL. |
| unset |
|
|
| Per-request timeout. |
| bundled | Point at a different OpenAPI document. |
Read-only sessions
VREMLY_MCP_READ_ONLY=1 also permits these reviewed POST operations, which need a request body to calculate a preview:
/orders/prepare/agent-actions/booking/preview/agent-actions/rebook/{projectId}/preview/agent-actions/delivery/{projectId}/preview/agent-actions/followup/{projectId}/preview/agent-migrations/{migrationId}/reconciliation-preview/agent-actions/{booking|delivery|followup}/receipts/{receiptId}/reconciliation-preview
Other POST operations and all PUT/PATCH/DELETE operations are refused in this mode. These previews do not confirm bookings, charge payments, deliver media, send follow-up or commit migration changes. API-key scopes and organization/project authorization still apply to every permitted request.
Related MCP server: mcp-swagger
Tools
Four tools expose the reviewed public integration surface:
Tool | Purpose |
| Inspect the connected organization and granted business permissions. |
| Find endpoints by keyword. |
| Parameters, required body fields, responses and permissions. |
| Call an endpoint and return its status and body. |
Use capabilities → search → describe → request. Describing before calling avoids guessing request fields. Validated request bodies reject unknown fields with HTTP 400; endpoints without a published body schema may ignore unknown fields. The endpoint description identifies which behavior applies.
Permissions
Version 0.2.0 adds explicit read/write grants for evaluations, team, dispatch,
reports, project conversations, scheduling, training, inventory, permitted
settings, payroll, workflow catalogs and saved views. For example,
EVALUATIONS_WRITE allows reviewed evaluation reads and writes while retaining
all organization role and project authorization checks. It grants no other
domain. Existing READ/WRITE credentials do not gain these capabilities.
Create a new key with the needed grants; updating the local package grants
nothing. Hosted connections require explicit reauthorization to add grants.
What the assistant may do is decided by the key and enforced server-side on every request — not by this process.
Scope | Grants |
|
|
| Everything |
| Everything, except moving money (below) |
| The bulk import endpoints only |
| Managing webhook subscriptions |
A key belongs to one organization and the server derives the organization from it, so the assistant can never reach another organization's data.
No key can move money, at any scope, ADMIN included. The assistant cannot
charge a card, issue a refund or take a card-reader payment; the server refuses
those routes to every key, and they are not in the bundled openapi.json. To
get paid it sends the customer a payment link
(POST /invoices/{id}/send-payment-link). If it cancels a job that is already
paid, the job is cancelled, the invoice stays paid, and the business gets an
email to issue the refund in Vremly. It never charges a cancellation fee.
Give it a
READkey unless it needs to write. That guarantee holds even if the assistant is prompt-injected by something it reads.VREMLY_MCP_READ_ONLY=1is a convenience, not a security boundary — anything able to set that variable could also unset it.
Requests are rate limited per key. Each key has its own per-minute budget, set
when it was created (120 by default, 10 to 1000 allowed), counted across every
endpoint. Some endpoints add their own cap, with burst limits of 3 per second
and 20 per 10 seconds. A 429 names the limit hit; this server returns the
Retry-After-* and X-RateLimit-* headers in a rateLimit object beside the
body. See Rate Limits.
Development
npm install
npm run build
npm run typecheckprepare runs build, which is what lets npx install this straight from
GitHub — dist/ is deliberately not committed.
This repository is a published mirror. The source of truth is
apps/mcp-server in the Vremly monorepo, and openapi.json is generated from
the backend rather than written by hand. Send changes there; edits made
directly here will be overwritten by the next sync.
Available Tools
3 toolsvremly_describe_endpointA
Describe one Vremly endpoint in full: path and query parameters, the request body schema with required fields, response schemas, and which credential it accepts. Call this before vremly_request so the body you send matches what the server validates — unknown fields are stripped silently rather than rejected, so a misspelled key fails invisibly.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path template exactly as returned by search, placeholders included, e.g. "/projects/{id}". | |
| method | Yes | HTTP method, e.g. "POST". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a critical, non-obvious server behavior (silent stripping of unknown fields) and mentions that a credential is accepted, though it doesn't detail authentication requirements. It does not contradict any annotations (none exist). The description goes beyond a simple definition by explaining the consequence of misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The primary purpose is front-loaded, followed by a high-value usage warning. Every word earns its place; there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must explain what is returned. It explicitly lists the components (path/query parameters, request body schema with required fields, response schemas, and credential). It also covers when to use it relative to siblings. Given the tool's moderate complexity (2 parameters, no nested objects), the description is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('path' and 'method') are already documented with formats and examples. The description adds no additional semantic detail beyond what the schema provides, so a baseline of 3 is appropriate. It does reinforce that the path must be a template as returned by search, but that is already in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Describe') with a specific resource ('one Vremly endpoint') and enumerates the exact content (parameters, body schema, responses, credential). It distinguishes itself from siblings: it is not a search tool (vremly_search_endpoints) nor a request tool (vremly_request).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to call this tool ('Call this before vremly_request') and explains why (server validation strips unknown fields silently, so a misspelled key fails invisibly). This provides both a positive trigger and a warning that motivates its use, without needing to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vremly_requestA
Call a Vremly API endpoint and return its status and body. Authenticates with the configured organization API key; the organization is derived from that key, so it can only ever reach that organization's data, and the key's scopes decide what it may do (a READ key cannot write). Substitute real ids into the path — do not send {placeholders}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Optional JSON request body. Ignored for GET/HEAD/OPTIONS. | |
| path | Yes | Path with real values substituted, e.g. "/projects/proj_123". | |
| query | No | Optional query string parameters. | |
| method | Yes | HTTP method, e.g. "GET" or "POST". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well by explaining authentication, organization scoping, and that key scopes determine write permissions. It stops short of detailing error behavior or specific side-effect warnings, but the contingent write capability is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the core purpose in the first sentence followed by relevant authentication and usage notes. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives enough context for an agent to use the tool: what it does, how authentication works, and what to substitute. It does not specify response formats beyond status/body, but for a generic request tool this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is high. The description adds useful context by emphasizing path placeholder substitution and confirming that body/query are optional, which goes slightly beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: calling a Vremly API endpoint and returning its status and body. This verb-focused purpose distinguishes it from sibling tools that search or describe endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some practical guidance, such as substituting real IDs and not sending placeholders, but does not explicitly mention when to prefer this tool over the sibling search/describe tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vremly_search_endpointsA
Search the Vremly API for endpoints by keyword. The API has 1037 operations covering projects (shoots), customers, media and delivery, invoicing, scheduling, the marketplace and webhooks. Start here when you do not already know the exact path. Returns method, path, summary and tags — pass a result to vremly_describe_endpoint for its full shape.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 20). | |
| query | Yes | Keywords, e.g. "create project", "webhook subscription", "invoice pdf". All terms must match. | |
| method | No | Optional HTTP method filter, e.g. "POST". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only search operation without stating it explicitly. Since no annotations are provided, the description carries the full burden of disclosing side effects. While the nature of a search tool makes mutations unlikely, explicitly noting that it does not modify any resources would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It opens with the primary action and resource, then provides scope, use-case guidance, and output details in a logical flow. Every sentence serves a purpose, with no fluff or unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a search tool. It explains what the tool does, when to use it, what it returns, and how to get more detail via the sibling describe_endpoint. It does not need to explain output schema since it explicitly mentions the returned fields. This covers all essential context an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters (query, limit, method) with 100% description coverage. The description adds valuable nuances: the 'query' parameter's requirement that all terms must match, and the 'method' parameter being an optional filter. This enhances the schema without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: searching the Vremly API by keyword. It specifies the scope (1037 operations covering various domains) and the primary use case (when the exact path is unknown). This unambiguously distinguishes it from the sibling describe_endpoint and request tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'start here' when the path is unknown, and it outlines what the tool returns (method, path, summary, tags) and how to proceed for full details (pass result to describe_endpoint). This gives clear guidance on when and how to use it, including a natural handoff to the next tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
vremly_describe_endpoint - First observed
vremly_request - First observed
vremly_search_endpoints
TDQS
Scored across 3 tools
Each tool has a clearly distinct role: search finds endpoints, describe gives full schema details, and request executes the call. There is no overlap or ambiguity between them.
All tools share the vremly_ prefix and use snake_case, making the set predictable. The only minor inconsistency is that vremly_request omits the 'endpoint' object present in the other two names.
Three tools is an elegant fit for an API gateway covering 1,037 operations. Each tool earns its place in a clear discovery-to-execution pipeline without redundancy.
The workflow is complete: search to find endpoints, describe to understand the required shape, and request to execute. There are no obvious dead ends or missing operations for the stated purpose of interacting with the Vremly API.
Maintenance
Related MCP Connectors
Find and call verified APIs from any AI assistant, with free trial calls and previewed writes.
Turn any task into the right API calls: discover, evaluate, and integrate public APIs.
Discover, compare, route, and execute machine-accessible capabilities for AI agents.
CRM and business database for AI agents: search and update records, documents and workspace schema.
Related MCP Servers
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with the Nimble REST API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.1,127 npmApache 2.0- AlicenseAqualityDmaintenanceExposes Swagger/OpenAPI API documentation to AI models, enabling exploration, search, and interaction with endpoints, schemas, and execution of API calls.144 npm2MIT
- AlicenseNot gradedqualityFmaintenanceProvides AI assistants with access to OpenAPI specifications, enabling API discovery, schema retrieval, and direct API execution with support for OAuth 2.0 and other authentication methods.5 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage film equipment inventory, clients, rental sessions, and statistics through the Film Equipment Rental WordPress plugin API.-