An open API service indexing awesome lists of open source software.

https://github.com/the-artinet-project/cli

An interactive command-line interface that uses the Agent2Agent (A2A) & Model Context Protocols (MCP) to manage multi-agent systems.
https://github.com/the-artinet-project/cli

a2a a2a-cli a2a-client a2a-mcp a2a-protocol agent2agent agentic-ai ai ai-agent ai-agents artificial-intelligence mcp mcp-client mcp-tools model-context-protocol multi-agent multi-agent-collaboration multi-agent-simulation multi-agent-system multi-agent-systems

Last synced: 3 months ago
JSON representation

An interactive command-line interface that uses the Agent2Agent (A2A) & Model Context Protocols (MCP) to manage multi-agent systems.

Awesome Lists containing this project

README

          

# Symphony

An interactive command-line interface that uses the Agent2Agent (A2A) & Model Context Protocols (MCP) to manage multi-agent systems.

https://github.com/user-attachments/assets/038aebcc-f1b4-4e2a-a9f8-3fa15a3062d6

## Installation

```bash
npm install -g @artinet/symphony
```

## Quick Start

```bash
symphony
```

## Recommended

- [Python](https://www.python.org/downloads/): 3.12.3^
- [uv](https://docs.astral.sh/uv/): [uvx](https://docs.astral.sh/uv/guides/tools/)

### Recommended for Default Agents

- [Official Fetch MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch#fetch-mcp-server): `uvx mcp-server-fetch`
- [Official Filesystem MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem#filesystem-mcp-server): `npx -y @modelcontextprotocol/server-filesystem`
- [Official Memory MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/memory#knowledge-graph-memory-server): `npx -y "@modelcontextprotocol/server-memory"`
- [Official Thinking MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking#sequential-thinking-mcp-server): `npx -y @modelcontextprotocol/server-sequential-thinking`

## Config

The config folder contains relevant configuration settings for the CLI.

### Configuring Tools

Stdio MCP Servers can be added by updating the mcp.json file:

```json
{
"secure-filesystem-server": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"${XDG_DATA_HOME:-$HOME/.local/share}/" // Set an approved directory or it will default to /home/
]
},
"mcp-fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"sequential-thinking-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
},
"memory-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
```

- To point to another mcp configuration file set `SYMPHONY_MCP_CONFIG=absolute/path` in your environment variables.

### Configuring Agents

Agent configurations are found in the `/config/agents` folder.

- To configure a new agent define it in an extended agents.md file and it will be automatically loaded into the CLI on start-up:

```yaml
---
name: Example Agent
description: Provide a brief description of the agent and what it can do.
model: deepseek-ai/DeepSeek-R1 # Pick a base model from the available models on artinet.io (defaults to Deepseek-R1)
version: "1.0.0"
skills: # Define the agents specific capabilities
- id: example-skill
name: Example Skill
description: Give more specific descriptions of the kind of tasks your agent excels at.
- id: demo-skill
name: Demo Skill
description: Make sure to accurately describe all of the agents capabilities to improve discovery.
tools: # Set the tools that the agent can use from the preconfigured stdio servers in your mcp.json
- secure-filesystem-server
teams: # Assign the agent to a team and give it a role (lead {can call team members}/member {can be called by the team lead})
- name: example-team
role: lead
- name: demo-team
role: member
---
# Provide a detailed prompt for the agent that defines:
# How it should behave. (eg. "create a todo.txt file in your allowed directory and refer to it before..." )
# The scenarios in which it should call its available agents and tools (if any).
You are a helpful assistant that can...
```

- To point to another agents folder set `SYMPHONY_AGENT_DIR=absolute/path` in your environment variables.

### Logs

- Detailed logs of each session can be found in the the `artinet.log` file in the installation directory.

### Coming Soon

- Custom [IRouter](https://www.npmjs.com/package/@artinet/router?activeTab=readme) plugins.
- Custom [Agent Executors](https://github.com/the-artinet-project/artinet-sdk).

## Requirements

- Node.js ≥ 22.0.0

## License

Apache-2.0

This library is meant to empower the community to create interoperable agent swarms, as such, it's licensed under an Apache-2.0 license.
We reserve the right to convert the license to a GPLv3 license at any point if its determined that derivatives of the library are being used outside the spirit of this repository.