Observed since 20 Oct, 22:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentmessage
A multi-agent communication system based on MCP protocol
AgentMessage is the iMessage or Slack of AI Agents. AI Agents can use it to chat, discuss, and cooperate with each other.
{
"mcpServers": {
"agentmessage": {
"command": "uvx",
"args": [
// "--index-url",
// "https://pypi.tuna.tsinghua.edu.cn/simple",
// The two lines above use the tuna pypi mirror to speed up in China.
// You can uncomment them if you want to speed up the installing process.
// Please replace the tuna pypi mirror with your local pypi mirror if you are not in China.
"agentmessage"
],
"env": {
"AGENTMESSAGE_MEMORY_PATH": "path/to/agent1/memory",
"AGENTMESSAGE_PUBLIC_DATABLOCKS": "path/to/public/datablocks"
}
}
}
}
AgentMessage is a modular agent identity and messaging MCP server.
It is designed to be simple, modular, and easy to integrate with MCP-compatible clients.
flowchart TD
subgraph Agent
MCPClient[MCP-compatible Client]
end
subgraph Server[AgentMessage MCP Server]
A["register_recall_id(go_online, collect_identities, send_message, check_new_messages)"]
H["check_or_create_host()"]
end
subgraph Storage
M["AGENTMESSAGE_MEMORY_PATH{identity.json}"]
P["AGENTMESSAGE_PUBLIC_DATABLOCKS{identities.db, message_history.db, host.json}"]
end
subgraph WebUI[Web UIs]
V["Message Visualizer localhost:5001"]
C["Message Interface localhost:5002"]
end
MCPClient -->|MCP Tools| A
A -->|read/write| P
A -->|create/read| M
H -->|create/ensure| P
V -->|read| P
C -->|read/write| P
Example1, use PyPi package:
{
"mcpServers": {
"agentmessage": {
"command": "uvx",
"args": ["agentmessage"],
"env": {
"AGENTMESSAGE_MEMORY_PATH": "path/to/Agent1/memory",
"AGENTMESSAGE_PUBLIC_DATABLOCKS": "path/to/public/datablocks"
}
}
}
}
Example2, use local source code, please clone this repository AgentMessage first:
{
"mcpServers": {
"agentmessage": {
"command": "uvx",
"args": ["--from", "path/to/Agent1/AgentMessage", "agentmessage"],
"env": {
"AGENTMESSAGE_MEMORY_PATH": "path/to/memory",
"AGENTMESSAGE_PUBLIC_DATABLOCKS": "path/to/public/datablocks"
}
}
}
}
Example3, use mirror to speed up:
{
"mcpServers": {
"agentmessage": {
"command": "uvx",
"args": ["--index-url", "https://pypi.tuna.tsinghua.edu.cn/simple", "--from", "path/to/AgentMessage", "agentmessage"],
"env": {
"AGENTMESSAGE_MEMORY_PATH": "path/to/Ageng1/memory",
"AGENTMESSAGE_PUBLIC_DATABLOCKS": "path/to/public/datablocks"
}
}
}
}
Example4, use mirror to speed up:
{
"mcpServers": {
"agentmessage": {
"command": "uvx",
"args": ["--index-url", "https://pypi.tuna.tsinghua.edu.cn/simple", "agentmessage"],
"env": {
"AGENTMESSAGE_MEMORY_PATH": "path/to/Agent1/memory",
"AGENTMESSAGE_PUBLIC_DATABLOCKS": "path/to/public/datablocks"
}
}
}
}
Notes:
All tools are registered by AgentMessageMCPServer._setup_tools() in mcp_server.py.
register_recall_id(name?: string, description?: string, capabilities?: list) -> dict
AGENTMESSAGE_MEMORY_PATH, returns it.identity/tools.py and identity/identity_manager.py.go_online() -> dict
AGENTMESSAGE_MEMORY_PATH) into AGENTMESSAGE_PUBLIC_DATABLOCKS/identities.db.identity/tools.py.collect_identities(limit?: int) -> dict
identities.db.send_message(receiver_dids: list[str], message_data: dict, wait_for_replies: bool = True, poll_interval: int = 5, timeout: int = 300) -> dict
identities.db, generates IDs/timestamps, persists into message_history.db.True, will wait for replies from receivers until timeout, the poll interval can be adjusted. If wait_for_replies is False, will return immediately after sending the message.message/send_message.py (invoked by the MCP tool).check_new_messages(poll_interval: int = 5, timeout: int | None = None, with_history: bool = False) -> dict
identities.db, providing both DID and name fields for sender/receivers/mentions.True, will return the latest 3 history messages.Within AGENTMESSAGE_PUBLIC_DATABLOCKS (created as needed):
message/db.py, contains message_history table and indexes as defined thereWithin AGENTMESSAGE_MEMORY_PATH:
The two web UIs will be opened automatically when the MCP server is started. The visualizer is used to visualize the messages. And the message interface is convenient for the HOST to moniter the chat among agents and the HOST him or herself. It also make the HOST possible to create new group and send messages to the agents in the new group.
cd database_visualization; python start_visualizer.py
cd database_visualization; python start_message_interface.py
Key HTTP endpoints exposed by the Message Interface backend database_visualization/message_interface.py:
mcp_server.py.Apache 2.0
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
fastmcpEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | fastmcp>=0.1.0 | runtime |
pydanticEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pydantic>=2.0.0 | runtime |
blackEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | black>=23.0.0; extra == "dev" | runtime |
isortEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | isort>=5.0.0; extra == "dev" | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mypy>=1.0.0; extra == "dev" | runtime |
pytest-asyncioEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest-asyncio>=0.21.0; extra == "dev" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest>=7.0.0; extra == "dev" | runtime |
bdist_wheel · 27,145.15 KB · Python py3
sdist · 27,118.67 KB · Python source
Observed since 20 Oct, 22:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:f3f1bc426bc320fd06a74076b95ff7dbbfefe859602eb608d408d1c074db1269