Skip to content
CAI
Software that uses CAICheck a score

erlsci/erlmcp

52.8

Adequate · 2 October 2026

10.8k

lines of production code

Erlang

with TypeScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

erlmcp is an Erlang SDK that implements the Model Context Protocol (MCP) to enable AI assistants to interact with local services. It provides a complete OTP-compliant architecture for both client and server roles, supporting features such as tools, resources, and prompts over stdio and HTTP transports. The system facilitates integration with AI clients like Claude Desktop through standardized JSON-RPC communication and registry-based lifecycle management.

Features

Add weather MCP server example with tools, resources, and prompts

The examples/weather directory now includes a complete Model Context Protocol (MCP) server implementation for weather data. This example provides four tools (get\_weather, get\_forecast, get\_weather\_alerts, convert\_temperature), three resources (weather://locations, weather://help, weather://status), and two prompts (weather\_report, weather\_advice). It includes both TCP and stdio transport modes, comprehensive EUnit test suites, and documentation for integration with Claude Desktop.

examples/weather · high confidence

Erlang MCP SDK v0.5.1 introduces registry-based architecture and full client/server support

The SDK has been upgraded to version 0.5.1, introducing a centralized \erlmcp\_registry\ that manages server and transport lifecycle, registration, and message routing. This architectural shift enables a complete client implementation (\erlmcp\_client\) with support for resources, tools, prompts, batch requests, and notifications, alongside a refactored server implementation (\erlmcp\_server\_new\) that integrates with the registry. The public API in \erlmcp\ now exposes functions to start, stop, and bind transports (currently stdio) to servers, while \erlmcp\_json\_rpc\ handles standardized JSON-RPC encoding and decoding. Default configurations for timeouts and connection limits are now defined in the application metadata.

src · high confidence

Initial configuration files for Erlang MCP SDK

Added configuration files (dev.config, prod.config, sys.config, test.config) to define runtime settings for the Erlang MCP SDK. These files establish environment-specific log levels (debug, error, info, warning) and configure core SDK parameters including client timeouts, server subscription limits, and transport defaults for TCP and HTTP. The sys.config file also sets up the Erlang logger with standard I/O and file handlers, along with SASL error logging adjustments.

config · high confidence

Initial release of erlmcp, an Erlang MCP SDK

This change introduces the erlmcp project, providing an Erlang implementation of the Model Context Protocol (MCP) SDK. The repository now includes a complete OTP-compliant application with client and server support, enabling AI assistants to interact with local services via resources, tools, and prompts. The release establishes the project structure with Apache 2.0 licensing, a Makefile for build and test automation, and configuration for rebar3, including dependencies on jsx and jesse. It also sets a minimum requirement of Erlang/OTP 25 and provides examples for weather servers, calculator clients, and complete OTP applications.

(repo-wide) · high confidence

Introduce Erlang MCP SDK header with protocol constants and data types

The \include/erlmcp.hrl\ header file has been added to define the core building blocks for the Erlang MCP SDK. It establishes constants for the MCP protocol version (2025-06-18), JSON-RPC 2.0 error codes, and specific MCP error codes and messages. It also defines Erlang records and types for JSON-RPC requests, responses, and notifications, as well as MCP-specific structures for capabilities, resources, tools, prompts, content, and progress notifications, enabling consistent data handling across the client and server implementations.

include · high confidence

New stdio-based MCP example for Claude Desktop integration

The simple example now includes a complete stdio-based MCP server implementation (simple\_server\_stdio.erl) and a corresponding client (simple\_client.erl) to demonstrate local integration with Claude Desktop. The server exposes tools (echo, add, system\_info), a resource (example.txt), and a prompt template (write\_essay) via stdin/stdout, replacing or supplementing previous TCP-based approaches. A new README provides step-by-step configuration instructions for Claude Desktop, including the required JSON config structure and troubleshooting tips. The example also includes a direct test module (simple\_direct\_test.erl) to verify dynamic tool/resource/prompt registration.

examples/simple · high confidence

Behavioural changes

Updated calculator example to use erlmcp 0.3.1 API

The calculator example in \examples/calculator\ has been refactored to align with the erlmcp 0.3.1 API. This update includes a new client implementation (\calculator\_client.erl\) that manages MCP connections and tool calls, a comprehensive test suite (\calculator\_comprehensive\_test.erl\) covering arithmetic, advanced math, and error handling, and a demo script (\calculator\_demo.erl\) for interactive usage. The server implementation (\calculator\_server\_stdio.erl\) now uses the updated \erlmcp\_stdio\ interface for registering tools, resources, and prompts, ensuring compatibility with the latest protocol features.

examples/calculator · high confidence

Test coverage

Added local-only EUnit tests for stdio server and JSON parsing; Added validation and test scripts for the v0.5.0 server refactoring; Expanded test coverage for MCP server, client, and transport components.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 55 → 53 (-2.0)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 92 → 92 (+0.0)
  • Architecture 100 → 84 (-16.3)
  • Maturity 65 → 66 (+0.3)
  • Readiness 78 → 59 (-18.6)
  • Security 67 → 80 (+13.3)
  • Event-Driven 36 → 36 (+0.0)

Resolved (2)

  • Coverage not measured — no coverage collector is wired up
  • Hotspot: src/erlmcp_client.erl (src/erlmcp_client.erl)

New (3)

  • Documentation: no project overview (docs/protocol.md)
  • Outdated: jesse
  • Projects may be oversized for their cohesion

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

erlsci/erlmcp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit ade5f381b14db8329763836e4d7b7e0924d0b2d8 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.