harold-mcp
Harold MCP tools:
- Github repository: https://github.com/demiourgoi/harold/
- Documentation https://demiourgoi.github.io
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: asuccessflag (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 (rangeisnullfor 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)
| File | Size | Uploaded | |
|---|---|---|---|
| harold_mcp-0.0.3.tar.gz | 266.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|