Skip to main content
Glama
RelayDigital

vremly

Official
by RelayDigital

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-mcp

There is nothing to clone or build — npx fetches the repo and compiles it on first run.

Configuration

Variable

Default

Purpose

VREMLY_API_KEY

(required)

Your organization API key.

VREMLY_API_URL

https://api.vremly.com

API base URL.

VREMLY_MCP_READ_ONLY

unset

1 refuses anything but GET/HEAD/OPTIONS.

VREMLY_MCP_TIMEOUT_MS

30000

Per-request timeout.

VREMLY_OPENAPI_PATH

bundled

Point at a different OpenAPI document.

Related MCP server: nimble-js-mcp

Tools

Three, not one per endpoint:

Tool

Purpose

vremly_search_endpoints

Find endpoints by keyword.

vremly_describe_endpoint

Parameters, required body fields, responses.

vremly_request

Call it, and return the status and body.

The API has over a thousand operations. A tool per operation would cost more context to enumerate than most tasks cost to perform, and many hosts cap the tool count outright. Search → describe → request reaches all of them at a fixed cost, and because search reads the OpenAPI document directly there is no generated tool list to fall out of date.

Describing before calling is not ceremony: the API validates with whitelist: true, so a body field it does not recognise is silently dropped rather than rejected. A request built from a guessed field name returns 201 having ignored the field.

Permissions

What the assistant may do is decided by the key and enforced server-side on every request — not by this process.

Scope

Grants

READ

GET, HEAD, OPTIONS

WRITE

Everything READ allows, plus POST, PUT, PATCH, DELETE

ADMIN

Everything

BULK_IMPORT

The bulk import endpoints only

WEBHOOKS

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.

Give it a READ key unless it needs to write. That guarantee holds even if the assistant is prompt-injected by something it reads. VREMLY_MCP_READ_ONLY=1 is a convenience, not a security boundary — anything able to set that variable could also unset it.

Requests are rate limited per key: 3/second, 20/10 seconds, 100/minute.

Development

npm install
npm run build
npm run typecheck

prepare 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 tools
vremly_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath template exactly as returned by search, placeholders included, e.g. "/projects/{id}".
methodYesHTTP method, e.g. "POST".

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoOptional JSON request body. Ignored for GET/HEAD/OPTIONS.
pathYesPath with real values substituted, e.g. "/projects/proj_123".
queryNoOptional query string parameters.
methodYesHTTP method, e.g. "GET" or "POST".

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 20).
queryYesKeywords, e.g. "create project", "webhook subscription", "invoice pdf". All terms must match.
methodNoOptional HTTP method filter, e.g. "POST".

TDQS

A4.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 3 tool updatesv0.1.0
    • First observedvremly_describe_endpoint
    • First observedvremly_request
    • First observedvremly_search_endpoints

TDQS

A4.5/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to securely interact with Fireberry CRM, allowing metadata exploration, schema management, and record operations through natural language.
    42
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    890
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Exposes Swagger/OpenAPI API documentation to AI models, enabling exploration, search, and interaction with endpoints, schemas, and execution of API calls.
    14
    8
    2
    MIT