# Lingua Universale MCP Server

An MCP server that checks how your AI agents talk to each other, with formal proofs of the protocol's properties inside your editor.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 12
- Author: rafapra3008
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/rafapra3008/cervellaswarm
- Updated: 2026-08-18
- HTML: https://affpapa.org/en/nevibecode/mcp/lingua-universale-mcp-server

## What it does

Lingua Universale describes multi-agent conversations as session types. You list the roles and the order in which messages must travel, and the checker rejects a send from the wrong party or at the wrong moment. The failure shows up during development rather than in a live run.

The server starts as `uvx lu-mcp-server` and exposes the LU toolchain to your agent: compile a `.lu` source file, prove its properties, lint and format it, generate Python code. Several jobs stay on the CLI side — `lu verify`, `lu lint`, `lu fmt`, `lu visualize`, and `lu mcp-audit` for auditing the protocols of an MCP server itself.

Because the protocol lives in its own `.lu` file instead of your agent code, checking it fits as a separate build step. For CI, install the package with `pip install cervellaswarm-lingua-universale`; `lu verify` exits non-zero when a rule breaks. One prerequisite matters: every install snippet above relies on `uvx`, so `uv` has to be on the machine first.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add lu-mcp-server -- uvx lu-mcp-server
```
uvx runs the command named after the package; if the README names another one, use uvx --from lu-mcp-server <command>

### Codex

**Platform CLI**
```bash
codex mcp add lingua-universale-mcp-server -- uvx lu-mcp-server
```
uvx runs the command named after the package; if the README names another one, use uvx --from lu-mcp-server <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "lingua-universale-mcp-server": {
            "command": "uvx",
            "args": [
                "lu-mcp-server"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from lu-mcp-server <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "lingua-universale-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "lu-mcp-server"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from lu-mcp-server <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add lingua-universale-mcp-server uvx lu-mcp-server
```
uvx runs the command named after the package; if the README names another one, use uvx --from lu-mcp-server <command>

## When to use it
- lock down who may send which message and when
- prove a protocol cannot deadlock or run forever
- run the linter over `.lu` files before merging
- render the agent conversation as a Mermaid diagram
- audit an MCP server's own protocol definitions

## Example prompts
- Verify `delegate_task.lu` and list which properties were proved
- Add a validator role to the protocol, then lint the `.lu` files
- Draw the sequence diagram for the `Review` protocol

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
