Skip to main content

harold-mcp

Harold logo

Harold MCP tools:

What is this?

harold-mcp is an MCP server that gives AI coding assistants tools for working with the Maude specification and verification language.

Harold MCP Tools

  • maude_program_diagnostics(path) — diagnoses a Maude source file by loading it into the Maude interpreter and reporting every problem it finds, including warnings Maude can recover from. Returns a structured, LSP-style result: a success flag (true only when the file loads with no warnings and no errors), per-severity counts, and one diagnostic per problem with a 1-based line range (range is null for whole-file problems). Use it to check whether a Maude program is well formed, and to get a list of issues to fix.

Planned tools: running Maude programs, and a vector index of the Maude documentation for retrieval-augmented generation (RAG).

Installation

  • Install uv
  • Run uvx harold-mcp --version

To update run uvx harold-mcp@latest --version.
If you want to run a specific version, check the release history in PyPI use uvx harold-mcp@VERSION, e.g. uvx harold-mcp@0.0.2.

The maude dependency bundles the Maude interpreter (built against Maude 3.5.1), so there is nothing else to install.

Then setup the harold-mcp command defined on pyproject.toml as an MCP server for your IDE.
For example, for Zed add the following to ~/.config/zed/settings.json:

  "context_servers": {
    "harold": {
      "enabled": true,
      "remote": false,
      "command": "uvx harold-mcp",
      "args": [],
      "env": {}
    }
  },
  ...

for opencode (useful for automated testing) add the following to ~/.config/opencode/opencode.jsonc:

  "mcp" : {
    "harold": {
      "type": "local",
      "command": ["uvx harold-mcp"],
      "enabled": true,
      "environment": {}
    }
  }

for Cline (useful for manual testing and Maude programming) add the following to ~/.cline/data/settings/cline_mcp_settings.json:

  "mcpServers" : {
    "harold": {
      "command": "uvx harold-mcp",
      "args": [],
      "disabled": false,
      "autoApprove": [],
      "env": {}
    }
  }

Configuration

The server is configured through environment variables (HAROLD_* prefix) set in the MCP server configuration:

Env var Meaning Default
HAROLD_MAUDE_WORKERS Number of Maude worker processes. Diagnostics run in parallel across workers; more workers use more memory (each creates its own Maude interpreter). 1
HAROLD_MAUDE_WORKER_TIMEOUT_SECS Seconds to wait for each worker call before failing it as timed out. 60

Invalid values (e.g. HAROLD_MAUDE_WORKERS=0) make the server fail fast at startup.

Development

Contributions are welcome! See CONTRIBUTING.md for the contribution workflow, and DEVELOPER_GUIDE.md for the development environment and release process.


Repository initiated with osprey-oss/cookiecutter-uv.

Release files for harold-mcp 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for harold-mcp 0.0.3
File Size Uploaded
harold_mcp-0.0.3.tar.gz 266.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for harold-mcp 0.0.3
File Interpreter ABI Platform
harold_mcp-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 337.4 kB

Release files / harold_mcp-0.0.3.tar.gz

Download URL harold_mcp-0.0.3.tar.gz
Size 266.4 kB
Tags Source
SHA-256 checksum
How to use checksums
52e0b8c8238c2db14dd308aedc246354d86533a8cea457e4e669ddfc85e324f4
BLAKE2b-256 checksum
How to use checksums
5cba389c72862e3f73775e76a088e7683a681495c4b5538032b83a5b9ad11554
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / harold_mcp-0.0.3-py3-none-any.whl

Download URL harold_mcp-0.0.3-py3-none-any.whl
Size 71.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9ae357ef27c8074b97386a080f08e645745840efe70bc9781bc72449ce2cf4e
BLAKE2b-256 checksum
How to use checksums
e33b0a267835f0d0b06b3e380f493ff40f22e6dfb4d13d2728be8e71e639d5d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page