Skip to main content
Glama

Heim MCP

Model Context Protocol server for Heim application deployment and management.

Overview

This MCP server allows AI agents like Claude Desktop, Cursor, Windsurf, and others to create, deploy, and manage Heim applications directly through natural language commands.

Purpose You can directly ask the AI to create new Heim applications from OpenAPI specifications, deploy them locally or to the cloud, and manage the Heim runtime.

What is Heim? Heim is a platform for creating and deploying backend applications.

Related MCP server: mcp-server-toolkit

Available Tools

Tool

Description

new_heim_application

Creates a new Heim application from an OpenAPI 3.0.1 specification

deploy_heim_application

Deploys an application to the local Heim runtime (available at http://127.0.0.1:3000)

deploy_heim_application_to_cloud

Deploys an application to Heim cloud

start_heim

Starts the Heim runtime to handle deployment requests

clear_heim

Clears the local cache and stops the Heim runtime

update_heim

Updates Heim to the latest version

Using with Cursor

Installation - Globally

Run the MCP server using npx:

npx -y @nor2/heim-mcp@latest

In your Cursor IDE

  1. Go to Cursor Settings > MCP

  2. Click + Add New MCP Server

  3. Fill in the form:

    • Name: Heim (or any name you prefer)

    • Type: command

    • Command: npx -y @nor2/heim-mcp@latest

Installation - Project-specific

Add an .cursor/mcp.json file to your project:

{
  "mcpServers": {
    "heim": {
      "command": "npx",
      "args": [
        "-y",
        "@nor2/heim-mcp@latest"
      ]
    }
  }
}

Usage

Once configured, the Heim tools will be automatically available to the Cursor AI Agent. You can:

  1. Ask the AI to create new applications from OpenAPI specs

  2. Deploy applications locally or to the cloud

  3. Manage the Heim runtime

  4. The tools will be listed under Available Tools in MCP settings

Using with Roo Code

Access the MCP settings by clicking "Edit MCP Settings" in Roo Code settings or using the "Roo Code: Open MCP Config" command in VS Code's command palette.

{
  "mcpServers": {
    "heim": {
      "command": "npx",
      "args": [
        "-y",
        "@nor2/heim-mcp@latest"
      ]
    }
  }
}

Prerequisites

Before using this MCP server, you need to have Heim installed on your system. You can install it by following the instructions at https://heim.dev/releases/.

Development

# Install dependencies
pnpm install

# Build
pnpm build

Debugging the Server

To debug your server, you can use the MCP Inspector.

First build the server:

pnpm build

Run the following command in your terminal:

# Start MCP Inspector and server with all tools
npx @modelcontextprotocol/inspector node dist/index.js

License

MIT

Available Tools

6 tools
deploy_heim_applicationDeploy Heim ApplicationA
Idempotent

Runs 'heim deploy' command to deploy an application to a local Heim runtime. Which will make the application availible on http://127.0.0.1:3000 where is the path defined in your OpenAPI specification

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAbsolute windows path to the application folder root

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond annotations: it specifies the deployment makes the application available on a specific local URL (http://127.0.0.1:3000<PATH>), which is not covered by annotations. Annotations already indicate it's non-destructive, non-read-only, and idempotent, so the description appropriately focuses on runtime behavior rather than repeating those traits.

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 efficiently structured in two sentences: the first states the core action and target, the second explains the outcome (URL availability). Every phrase adds value without redundancy, making it front-loaded and appropriately concise for the tool's complexity.

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?

Given the tool's moderate complexity (single parameter, no output schema), the description covers key aspects: purpose, local vs. cloud distinction, and deployment outcome. However, it lacks details on prerequisites (e.g., required OpenAPI spec), error conditions, or interaction with sibling tools like 'heim_clear', leaving minor gaps in completeness.

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?

With 100% schema description coverage, the input schema fully documents the single parameter ('path'). The description mentions '<PATH>' in the URL context but doesn't add meaningful semantics beyond what the schema provides (e.g., format examples or constraints). This meets the baseline for high schema coverage.

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 specific action ('Runs 'heim deploy' command'), the resource ('deploy an application'), and the target environment ('to a local Heim runtime'). It distinguishes from sibling 'deploy_heim_application_to_cloud' by specifying 'local' deployment, making the purpose unambiguous and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (deploying to local runtime) and implicitly distinguishes it from the cloud deployment sibling. However, it lacks explicit guidance on when NOT to use it or alternatives for other scenarios (e.g., vs. 'heim_start' or 'new_heim_application'), which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_heim_application_to_cloudDeploy Heim Application to CloudB
Idempotent

Runs 'heim deploy' command to deploy an application to Heim cloud. Which will make the application availible on the path outputted in the console

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAbsolute windows path to the application folder root

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a non-read-only, non-destructive, idempotent operation with open-world semantics. The description adds valuable context by specifying it runs a command-line operation ('heim deploy') and that the deployment makes the application available on a path outputted in the console, which clarifies the execution method and output behavior beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences that directly state the action and outcome. It avoids unnecessary details, though the phrasing 'availible' contains a typo and could be slightly clearer (e.g., specifying 'available' and elaborating on the path output).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (deployment operation), annotations cover safety and idempotency well, and the schema fully describes the single parameter. However, without an output schema, the description only briefly mentions a path output in the console, lacking details on return format, error handling, or deployment status, leaving gaps for agent invocation.

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?

The input schema has 100% description coverage, clearly documenting the 'path' parameter as an absolute Windows path to the application folder root. The description doesn't add any parameter-specific details beyond what the schema provides, so it meets the baseline for high schema coverage without extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('deploy an application to Heim cloud') and resource ('application'), specifying it runs the 'heim deploy' command. However, it doesn't explicitly differentiate from sibling tools like 'deploy_heim_application' (which may be a local deployment variant), leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'deploy_heim_application' or 'heim_update'. The description mentions making the application available on a path, but doesn't specify prerequisites, exclusions, or comparative contexts with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

heim_clearA
Destructive

Clears the local cache of the Heim runtime which will attempt to stop the runtime and remove all applications, logs, metrics, etc. from the runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide key behavioral hints (destructiveHint: true, readOnlyHint: false, etc.), but the description adds valuable context beyond this: it specifies that clearing the cache 'will attempt to stop the runtime' and removes 'all applications, logs, metrics, etc.', clarifying the scope and impact of the destructive operation. No contradiction with annotations is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the tool's purpose and effects without redundancy. It is front-loaded with the core action ('Clears the local cache') and adds necessary details, though it could be slightly more concise by avoiding 'etc.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (destructive operation with no parameters) and rich annotations, the description covers the core action and scope adequately. However, without an output schema, it lacks details on return values or success/failure indicators, and it doesn't address potential side effects like downtime or recovery steps, leaving some gaps for the agent.

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?

With 0 parameters and 100% schema description coverage, the baseline is 4. The description appropriately does not discuss parameters, as none exist, and focuses on the tool's action and effects, which is sufficient given the empty input schema.

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 specific action ('clears') and resource ('local cache of the Heim runtime'), with explicit details about what gets removed ('all applications, logs, metrics, etc.'). It distinguishes from siblings like deploy_heim_application or heim_start by focusing on cleanup rather than deployment or startup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for clearing cache and stopping the runtime, but provides no explicit guidance on when to use this tool versus alternatives (e.g., heim_update for updates or heim_start for restarting). No prerequisites or exclusions are mentioned, leaving the agent with minimal context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

heim_startB

Starts the Heim runtime which will run your backend applications.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover key traits: readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false. The description adds value by explaining the runtime's purpose ('run your backend applications'), but doesn't disclose additional behavioral details like startup time, error conditions, or dependencies. No contradiction with annotations exists.

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 a single, efficient sentence that directly states the tool's purpose without redundancy. It's front-loaded with the core action and resource, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (starting a runtime) and lack of output schema, the description is minimal but adequate. Annotations provide safety and idempotency info, but the description could better address context like prerequisites or effects. It meets minimum viability but has gaps in usage guidance.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately avoids discussing parameters, focusing on the tool's action. Baseline is 4 for zero parameters, as it doesn't add unnecessary details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Starts') and the target ('the Heim runtime'), specifying it will 'run your backend applications.' This provides a specific verb+resource combination, though it doesn't explicitly differentiate from sibling tools like 'heim_update' or 'new_heim_application' in terms of when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the runtime must be stopped first), exclusions, or comparisons to siblings like 'heim_clear' or 'deploy_heim_application,' leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

heim_updateB

Updates Heim to the latest version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a mutable operation (readOnlyHint: false) but not destructive or idempotent. The description adds that it updates to the latest version, providing some behavioral context beyond annotations. However, it doesn't detail side effects, error conditions, or what 'latest version' entails (e.g., automatic checks, user confirmation).

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 a single, clear sentence with no wasted words. It's front-loaded with the core action and target, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 0 parameters and annotations covering mutability and safety, the description is minimally adequate. However, without an output schema, it doesn't explain what happens after the update (e.g., success message, version info, errors), and it lacks context about sibling tools, leaving gaps in completeness.

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?

There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately omits parameter details, earning a baseline score of 4 for not adding unnecessary information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Updates') and target ('Heim'), specifying it updates to the latest version. However, it doesn't differentiate from sibling tools like 'deploy_heim_application' or 'heim_start', which might also involve updates or deployments, leaving some ambiguity about when to use this specific update tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'deploy_heim_application' or 'heim_start'. The description lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

new_heim_applicationNew Heim ApplicationA

Runs 'heim new' command on your local computer to create application schafholding from an OpenAPI 3.0.1 specification.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute windows path to the folder where the project should be created. The created project will be under this path with a folder name called 'name'. The code to modify will be under <PATH>/<NAME>/src/ and the heim folder within shouldn't be modified.
openApiPathYesAbsolute windows path to OpenAPI file. The schema requires operationId and a full list of what Heim supports of the OpenAPI schema can be found here: https://cloud.heim.dev/heim/docs/templates/openapi/#openapi-root-object
nameYesThe name of the application. This will be used to name the application folder and set the name in the application.toml file.
languageYesThe programming language you want to use for creating an application from an OpenAPI specification. Currently Rust and CSharp are supported.
versionNoThe version number it will set for the application in SemVer format. Defaults to `0.1.0`.0.1.0
basePathNoThe base path added bafore the path in the OpenAPI schema. Defaults to not adding a base path./
overwriteNoShould the new application overwrite an existing folder if it already exists? Defaults to `false`.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, not open-world, not idempotent, and not destructive. The description adds useful context about creating a project folder and not modifying the heim folder, which goes beyond annotations. However, it doesn't mention potential side effects like file system changes or error conditions, leaving some behavioral gaps.

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 a single, well-structured sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the main action and resource, making it easy to understand at a glance. Every word serves a clear purpose.

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?

For a tool with 7 parameters, 100% schema coverage, and no output schema, the description provides sufficient context about what the tool does and its basic behavior. It could be more complete by mentioning the tool's effect on the local file system or potential errors, but it adequately covers the main purpose given the rich schema support.

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?

With 100% schema description coverage, the schema fully documents all 7 parameters. The description doesn't add any parameter-specific details beyond what's in the schema. The baseline score of 3 reflects adequate coverage through the schema alone, with no additional value from the 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 clearly states the specific action ('Runs heim new command'), the resource ('create application scaffolding'), and the source ('from an OpenAPI 3.0.1 specification'). It distinguishes itself from siblings like deploy_heim_application and heim_update by focusing on initial creation rather than deployment or updating.

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?

The description implies this tool is for initial application creation from an OpenAPI spec, suggesting usage when starting a new project. However, it doesn't explicitly state when to use this versus alternatives like heim_update for existing projects, nor does it mention prerequisites or exclusions. The context is clear but lacks explicit guidance on alternatives.

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. Dates show when Glama detected each change.

  1. 6 tool updates
    • First observeddeploy_heim_application
    • First observeddeploy_heim_application_to_cloud
    • First observedheim_clear
    • First observedheim_start
    • First observedheim_update
    • First observednew_heim_application

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. The tools cover deployment (local and cloud), runtime management (start, clear), system update, and application creation, with no overlap in functionality. An agent can easily distinguish between them based on their specific actions.

Naming Consistency4/5

The naming is mostly consistent with a verb_noun pattern, using underscores throughout. However, there is a minor deviation: 'new_heim_application' uses 'new' as a verb, while others like 'deploy_heim_application' use more standard action verbs, but this does not significantly hinder readability or predictability.

Tool Count5/5

With 6 tools, the count is well-scoped for managing a Heim application lifecycle. Each tool earns its place by covering key operations such as deployment, runtime control, updates, and application creation, without being overly sparse or bloated.

Completeness4/5

The tool set provides good coverage for the Heim domain, including deployment (local and cloud), runtime management, updates, and application creation. A minor gap exists in monitoring or logging tools, but core workflows are well-supported, allowing agents to perform essential tasks without significant dead ends.

Maintenance

ActivityInactive
ResponsivenessSlow

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

Latest Blog Posts

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/Nor2-io/heim-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server