A .lu file names the roles and the messages between them and then states the properties that must hold — always terminates, no deadlock, all roles participate — which lu_check_properties either establishes or does not. lu_verify_message applies the same definition while a conversation is running, so a message that would take the session somewhere the protocol does not allow is rejected rather than improvised around.
A verification server for Lingua Universale, a protocol language for agent communication. It parses .lu protocol definitions, validates messages against an ongoing session, and checks formal safety properties.
- A .lu protocol definition parsed, with its roles, exchanges and branches extracted as structure — lu_load_protocol
- A message checked for validity in the context of a session already in progress — lu_verify_message
- Formal safety properties verified — always terminates, no deadlock, all roles participate — lu_check_properties
- Twenty standard-library protocols across five categories to start from instead of a blank file — lu_list_templates
No account and no key. pip install lu-mcp-server, then launch the lu-mcp-server command over stdio; the registry entry runs the same package through uvx. Protocols are written as .lu files — roles, the exchanges between them, branch conditions, and a properties block stating what must hold.
One command — pip install lu-mcp-server
