agentmakemcp 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agentmakemcp/README.md +143 -0
- agentmakemcp/__init__.py +157 -0
- agentmakemcp/main.py +30 -0
- agentmakemcp/package_name.txt +1 -0
- agentmakemcp/requirements.txt +1 -0
- agentmakemcp-0.0.1.dist-info/METADATA +172 -0
- agentmakemcp-0.0.1.dist-info/RECORD +10 -0
- agentmakemcp-0.0.1.dist-info/WHEEL +5 -0
- agentmakemcp-0.0.1.dist-info/entry_points.txt +2 -0
- agentmakemcp-0.0.1.dist-info/top_level.txt +1 -0
agentmakemcp/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
=========================================================
|
|
2
|
+
AgentMake MCP: Your Gateway to Multi-Agent AI Systems
|
|
3
|
+
=========================================================
|
|
4
|
+
|
|
5
|
+
**agentmake_mcp** offers the simplest way to set up Modal Context Protocol (MCP) servers, powering them with the versatile agentic components from the `AgentMake AI <https://github.com/eliranwong/agentmake>`_ framework. This project provides the essential tools and infrastructure to create sophisticated multi-agent systems that can tackle complex tasks through collaboration and dynamic task allocation.
|
|
6
|
+
|
|
7
|
+
While **AgentMake AI** provides the core building blocks for creating individual AI agents, **agentmake_mcp** enables you to assemble and orchestrate them. Think of **AgentMake AI** as the factory for creating your specialized AI workers, and **agentmake_mcp** as the central command center where you manage your teams of agents on large-scale projects.
|
|
8
|
+
|
|
9
|
+
With AgentMake MCP, you can:
|
|
10
|
+
|
|
11
|
+
* **Integrate Diverse AI Tools:** Don't limit yourself to a single AI tool. Seamlessly connect AgentMake AI components with third-party AI tools using the standardized MCP interface.
|
|
12
|
+
* **Orchestrate Multiple Agents:** Define and manage how different AI agents, each with unique skills, collaborate to achieve a common goal.
|
|
13
|
+
* **Build Complex Workflows:** Design intricate workflows where agents delegate tasks, share information, and work in parallel to solve problems more efficiently.
|
|
14
|
+
* **Host Your Own MCP Server:** Easily deploy a dedicated server for your multi-agent systems, allowing for robust integration with your applications and services.
|
|
15
|
+
|
|
16
|
+
Key Features
|
|
17
|
+
============
|
|
18
|
+
|
|
19
|
+
* **Easy Server Setup:** Quickly deploy a fully functional MCP server with minimal configuration.
|
|
20
|
+
* **Seamless AgentMake AI Integration:** Leverage the full power of AgentMake AI's 16+ AI backends and 7 agentic components.
|
|
21
|
+
* **MCP Standards:** Supports running both MCP tools and MCP prompts with `AgentMake` components.
|
|
22
|
+
* **Flexible Agent Orchestration:** Define custom collaboration strategies and communication protocols for your agents.
|
|
23
|
+
* **Scalable and Extensible:** Designed to support a growing number of agents and complex workflows.
|
|
24
|
+
* **Developer-Friendly:** A clean and intuitive API for defining and managing your multi-agent systems.
|
|
25
|
+
|
|
26
|
+
Getting Started
|
|
27
|
+
===============
|
|
28
|
+
|
|
29
|
+
1. Prerequisites
|
|
30
|
+
----------------
|
|
31
|
+
|
|
32
|
+
* Python 3.8+
|
|
33
|
+
* Familiarity with the agentic components supported by `AgentMake AI <https://github.com/eliranwong/agentmake>`_.
|
|
34
|
+
|
|
35
|
+
`agentmake_mcp` automatically includes the `agentmake` library.
|
|
36
|
+
|
|
37
|
+
2. Installation
|
|
38
|
+
---------------
|
|
39
|
+
|
|
40
|
+
.. code-block:: bash
|
|
41
|
+
|
|
42
|
+
pip install --upgrade agentmake_mcp
|
|
43
|
+
|
|
44
|
+
To include support for Google's Vertex AI, install with the `[genai]` extra:
|
|
45
|
+
|
|
46
|
+
.. code-block:: bash
|
|
47
|
+
|
|
48
|
+
pip install --upgrade agentmake_mcp[genai]
|
|
49
|
+
|
|
50
|
+
3. Create a Configuration File
|
|
51
|
+
------------------------------
|
|
52
|
+
|
|
53
|
+
Create a Python file (e.g., `my_mcp_server.py`) and define a dictionary that configures your server. This dictionary can be named anything, as the server will automatically discover it.
|
|
54
|
+
|
|
55
|
+
Here is the structure of the configuration dictionary:
|
|
56
|
+
|
|
57
|
+
* `server` (required): `str` - The name of your MCP server.
|
|
58
|
+
* `transport` (optional): `str` - The transport protocol. Defaults to `http`.
|
|
59
|
+
* `port` (optional): `int` - The server port. Defaults to `8080`.
|
|
60
|
+
* `settings` (required): `list[dict]` - A list of dictionaries, where each dictionary defines an MCP prompt or tool.
|
|
61
|
+
|
|
62
|
+
Each dictionary placed in the settings list may have the following keys and values:
|
|
63
|
+
|
|
64
|
+
* name [required/optional] - This field is mandatory unless a tool is specified. It is a string value that serves as an identifier for a MCP prompt or tool.
|
|
65
|
+
* description [required/optional] - This field is also mandatory unless a tool is specified. It is a string that provides a detailed description of a MCP prompt or tool.
|
|
66
|
+
* agentmake [required] - This is a required field that can be either a string or a dictionary. To add a MCP prompt, a string value should be provided. Alternatively, to add a MCP tool, a dictionary should be used.
|
|
67
|
+
|
|
68
|
+
Setting up an MCP Prompt
|
|
69
|
+
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
70
|
+
|
|
71
|
+
To add an MCP prompt, provide the prompt string directly as the value for the `agentmake` key.
|
|
72
|
+
|
|
73
|
+
Setting up an MCP Tool
|
|
74
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
75
|
+
|
|
76
|
+
To add an MCP tool, provide a dictionary for the `agentmake` key. This dictionary specifies the parameters for the `agentmake` signature function from the AgentMake AI library (excluding the `messages` parameter).
|
|
77
|
+
|
|
78
|
+
*For more details on the `agentmake` function parameters, see the `AgentMake AI documentation <https://github.com/eliranwong/agentmake/blob/main/docs/README.md>`_.*
|
|
79
|
+
|
|
80
|
+
4. Running the Server
|
|
81
|
+
---------------------
|
|
82
|
+
|
|
83
|
+
Run the `agentmakemcp` command from your terminal, passing your configuration file as an argument.
|
|
84
|
+
|
|
85
|
+
**For examples**
|
|
86
|
+
|
|
87
|
+
.. code-block:: bash
|
|
88
|
+
|
|
89
|
+
agentmakemcp examples/ask_multiple_models.py
|
|
90
|
+
|
|
91
|
+
.. code-block:: bash
|
|
92
|
+
|
|
93
|
+
agentmakemcp examples/different_persona.py
|
|
94
|
+
|
|
95
|
+
.. code-block:: bash
|
|
96
|
+
|
|
97
|
+
agentmakemcp examples/youtube_utilities.py
|
|
98
|
+
|
|
99
|
+
.. code-block:: bash
|
|
100
|
+
|
|
101
|
+
agentmakemcp teamwork_and_toolmate.py
|
|
102
|
+
|
|
103
|
+
**Remarks:**
|
|
104
|
+
|
|
105
|
+
* You can run multiple AgentMake MCP servers simultaneously on different ports.
|
|
106
|
+
* You can specify different AI backends for different tools, even on the same MCP server.
|
|
107
|
+
|
|
108
|
+
More Examples
|
|
109
|
+
=============
|
|
110
|
+
|
|
111
|
+
You can find more advanced examples, such as chaining multiple agents together, in the `/examples <https://github.com/eliranwong/agentmake_mcp/tree/main/examples>`_ directory.
|
|
112
|
+
|
|
113
|
+
Integration with Third-Party AI Tools:
|
|
114
|
+
========================================
|
|
115
|
+
|
|
116
|
+
For example, to integrate `AgentMake MCP servers` with `Gemini CLI`:
|
|
117
|
+
|
|
118
|
+
.. code-block:: bash
|
|
119
|
+
|
|
120
|
+
agentmakemcp examples/ask_multiple_models.py
|
|
121
|
+
|
|
122
|
+
Edit `.gemini/settings.json` to include the following block:
|
|
123
|
+
|
|
124
|
+
.. code-block:: json
|
|
125
|
+
|
|
126
|
+
{
|
|
127
|
+
// add MCP servers
|
|
128
|
+
"mcpServers": {
|
|
129
|
+
"Ask Multiple AI Models": {
|
|
130
|
+
"httpUrl": "http://127.0.0.1:8080/mcp/"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
Contributing
|
|
136
|
+
============
|
|
137
|
+
|
|
138
|
+
We welcome contributions from the community! If you have an idea for a new feature, a bug fix, or an improvement to the documentation, please open an issue or submit a pull request.
|
|
139
|
+
|
|
140
|
+
License
|
|
141
|
+
=======
|
|
142
|
+
|
|
143
|
+
This project is licensed under the MIT License. See the `LICENSE file <https://github.com/eliranwong/agentmake_mcp/blob/main/LICENSE>`_ for details.
|
agentmakemcp/__init__.py
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
from agentmake import DEVELOPER_MODE, USER_OS, AGENTMAKE_USER_DIR, PACKAGE_PATH, readTextFile, writeTextFile
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
import os, traceback, re
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def readToolFile(tool_object: str) -> set:
|
|
7
|
+
"""return tool description and parameters"""
|
|
8
|
+
tool_name = tool_object[:20]
|
|
9
|
+
if USER_OS == "Windows":
|
|
10
|
+
tool_object = os.path.join(*tool_object.split("/"))
|
|
11
|
+
possible_tool_file_path_2 = os.path.join(PACKAGE_PATH, "tools", f"{tool_object}.py")
|
|
12
|
+
possible_tool_file_path_1 = os.path.join(AGENTMAKE_USER_DIR, "tools", f"{tool_object}.py")
|
|
13
|
+
if tool_object is None:
|
|
14
|
+
pass
|
|
15
|
+
elif os.path.isfile(possible_tool_file_path_1):
|
|
16
|
+
tool_file_content = readTextFile(possible_tool_file_path_1)
|
|
17
|
+
if tool_file_content:
|
|
18
|
+
tool_object = tool_file_content
|
|
19
|
+
elif os.path.isfile(possible_tool_file_path_2):
|
|
20
|
+
tool_file_content = readTextFile(possible_tool_file_path_2)
|
|
21
|
+
if tool_file_content:
|
|
22
|
+
tool_object = tool_file_content
|
|
23
|
+
elif os.path.isfile(tool_object): # tool_object itself is a valid filepath
|
|
24
|
+
tool_file_content = readTextFile(tool_object)
|
|
25
|
+
if tool_file_content:
|
|
26
|
+
tool_object = tool_file_content
|
|
27
|
+
if tool_object:
|
|
28
|
+
glob = {}
|
|
29
|
+
loc = {}
|
|
30
|
+
try:
|
|
31
|
+
exec(tool_object, glob, loc)
|
|
32
|
+
schema = loc.get("TOOL_SCHEMA")
|
|
33
|
+
description = description = schema["description"] if schema else loc.get("TOOL_DESCRIPTION", "")
|
|
34
|
+
parameters = schema["parameters"] if schema and "parameters" in schema else {}
|
|
35
|
+
return description, parameters
|
|
36
|
+
except Exception as e:
|
|
37
|
+
print(f"Failed to execute tool `{tool_name}`! An error occurred: {e}")
|
|
38
|
+
if DEVELOPER_MODE:
|
|
39
|
+
print(traceback.format_exc())
|
|
40
|
+
return "", {}
|
|
41
|
+
|
|
42
|
+
def compileServerScripts(configs: dict) -> str:
|
|
43
|
+
scripts = []
|
|
44
|
+
ob, cb = "{", "}"
|
|
45
|
+
server = configs.get("server", "AgentMake AI")
|
|
46
|
+
port = configs.get("port", 8080)
|
|
47
|
+
transport = configs.get("transport", "http")
|
|
48
|
+
|
|
49
|
+
for i in configs["settings"]:
|
|
50
|
+
if "agentmake" in i:
|
|
51
|
+
am = i["agentmake"]
|
|
52
|
+
|
|
53
|
+
if isinstance(am, str): # add a mcp prompt
|
|
54
|
+
# add to server script
|
|
55
|
+
script = f"""@mcp.tool
|
|
56
|
+
def {i["name"].replace(" ", "_").lower()}(request:str) -> PromptMessage:
|
|
57
|
+
\"\"\"{i["description"]}\"\"\"
|
|
58
|
+
logger.info(f"[Request] {ob}request{cb}")
|
|
59
|
+
prompt_text = \"\"\"{am}
|
|
60
|
+
|
|
61
|
+
# Here is the request:
|
|
62
|
+
---
|
|
63
|
+
{ob}request{cb}
|
|
64
|
+
---
|
|
65
|
+
\"\"\"
|
|
66
|
+
return PromptMessage(role="user", content=TextContent(type="text", text=prompt_text))"""
|
|
67
|
+
scripts.append(script)
|
|
68
|
+
|
|
69
|
+
elif isinstance(am, dict): # add a mcp tool
|
|
70
|
+
# fill in tool name and description when a tool is specified
|
|
71
|
+
if not "agent" in am and "tool" in am and am["tool"]:
|
|
72
|
+
firstTool = am["tool"] if isinstance(am["tool"], str) else am["tool"][0]
|
|
73
|
+
if not "name" in i:
|
|
74
|
+
i["name"] = firstTool.replace("/", "_")
|
|
75
|
+
description, parameters = readToolFile(firstTool)
|
|
76
|
+
if not "description" in i:
|
|
77
|
+
i["description"] = description
|
|
78
|
+
# specify tool arguments in tool description
|
|
79
|
+
if parameters and not re.search(r"^Args \[", description):
|
|
80
|
+
required = parameters["required"]
|
|
81
|
+
optional = [o for o in parameters["properties"] if not o in required]
|
|
82
|
+
if required:
|
|
83
|
+
args = [f"{r}: {parameters["properties"][r]['description']}" for r in required]
|
|
84
|
+
args = "\n ".join(args)
|
|
85
|
+
i["description"] += f"""
|
|
86
|
+
|
|
87
|
+
Args [required]:
|
|
88
|
+
{args}
|
|
89
|
+
"""
|
|
90
|
+
if optional:
|
|
91
|
+
args = [f"{o}: {parameters["properties"][o]['description']}" for o in optional]
|
|
92
|
+
args = "\n ".join(args)
|
|
93
|
+
i["description"] += f"""
|
|
94
|
+
Args [optional]:
|
|
95
|
+
{args}
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
# check name and description
|
|
99
|
+
if not "name" in i:
|
|
100
|
+
print(f"Error! Parameter `name` is missing in item {i}!")
|
|
101
|
+
exit(1)
|
|
102
|
+
elif not "description" in i:
|
|
103
|
+
print(f"Error! Parameter `description` is missing in item {i}!")
|
|
104
|
+
exit(1)
|
|
105
|
+
|
|
106
|
+
# add to server script
|
|
107
|
+
script = f"""@mcp.tool
|
|
108
|
+
def {i["name"].replace(" ", "_").lower()}(request:str) -> str:
|
|
109
|
+
\"\"\"{i["description"]}\"\"\"
|
|
110
|
+
logger.info(f"[Request] {ob}request{cb}")
|
|
111
|
+
messages = agentmake(request, **{am})
|
|
112
|
+
return getResponse(messages)"""
|
|
113
|
+
scripts.append(script)
|
|
114
|
+
|
|
115
|
+
mcp_server_script = f"""from fastmcp import FastMCP
|
|
116
|
+
from fastmcp.prompts.prompt import Message, PromptMessage, TextContent
|
|
117
|
+
from agentmake import agentmake
|
|
118
|
+
import logging, os
|
|
119
|
+
|
|
120
|
+
logger = logging.getLogger(__name__)
|
|
121
|
+
logging.basicConfig(format="[%(levelname)s]: %(message)s", level=logging.INFO)
|
|
122
|
+
|
|
123
|
+
mcp = FastMCP(name="{server}")
|
|
124
|
+
|
|
125
|
+
def getResponse(messages:list) -> str:
|
|
126
|
+
return messages[-1].get("content") if messages and "content" in messages[-1] else "Error!"
|
|
127
|
+
|
|
128
|
+
""" + "\n\n".join(scripts) + f"""
|
|
129
|
+
|
|
130
|
+
logger.info(f"MCP server `{server}` started on port {port}")
|
|
131
|
+
mcp.run(transport="{transport}", port={port})"""
|
|
132
|
+
|
|
133
|
+
# back up mcp server script
|
|
134
|
+
folderPath = os.path.join(AGENTMAKE_USER_DIR, "mcp")
|
|
135
|
+
Path(folderPath).mkdir(parents=True, exist_ok=True)
|
|
136
|
+
filePath = os.path.join(folderPath, f"{server.replace(' ', '_')}.py")
|
|
137
|
+
writeTextFile(filePath, mcp_server_script)
|
|
138
|
+
print(f"\n# Backup\n\nAgentMake MCP Server script was generated and saved to: {filePath}\n")
|
|
139
|
+
|
|
140
|
+
# setup hints
|
|
141
|
+
print(f"""# Starting MCP server `{server}` on port `{port}` ...
|
|
142
|
+
|
|
143
|
+
# Integration with Other AI Tools
|
|
144
|
+
|
|
145
|
+
For example, to work with `Gemini CLI`, add the following block: in `~/.gemini/settings.json`:
|
|
146
|
+
|
|
147
|
+
{ob}
|
|
148
|
+
...
|
|
149
|
+
"mcpServers": {ob}
|
|
150
|
+
"{server}": {ob}
|
|
151
|
+
"httpUrl": "http://127.0.0.1:{port}/mcp/"
|
|
152
|
+
{cb}
|
|
153
|
+
{cb}
|
|
154
|
+
{cb}
|
|
155
|
+
""")
|
|
156
|
+
|
|
157
|
+
return mcp_server_script
|
agentmakemcp/main.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from agentmake import readTextFile
|
|
2
|
+
from agentmakemcp import compileServerScripts
|
|
3
|
+
import os, argparse
|
|
4
|
+
|
|
5
|
+
def main():
|
|
6
|
+
parser = argparse.ArgumentParser()
|
|
7
|
+
parser.add_argument("default", nargs="*", default=None, help="AgentMake AI MCP server configuration file path.")
|
|
8
|
+
args = parser.parse_args()
|
|
9
|
+
|
|
10
|
+
if args.default is None:
|
|
11
|
+
print("Error! You need to specify an AgentMake AI MCP server configuration file path, e.g. `examples/youtube_utilities.py`")
|
|
12
|
+
exit(1)
|
|
13
|
+
|
|
14
|
+
filepath = args.default
|
|
15
|
+
if os.path.isfile(filepath):
|
|
16
|
+
configs = readTextFile(filepath)
|
|
17
|
+
if configs:
|
|
18
|
+
configs = eval(configs)
|
|
19
|
+
if isinstance(configs, dict):
|
|
20
|
+
exec(compileServerScripts(configs))
|
|
21
|
+
else:
|
|
22
|
+
print("Error! Invalid config file! Read instructions at: https://github.com/eliranwong/agentmake_mcp")
|
|
23
|
+
exit(1)
|
|
24
|
+
else:
|
|
25
|
+
print(f"Error! File `{filepath}` does not exist!")
|
|
26
|
+
exit(1)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
if __name__ == "__main__":
|
|
30
|
+
main()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
agentmakemcp
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
agentmake
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: agentmakemcp
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: AgentMake AI MCP Servers - Easy setup of MCP servers running AgentMake AI agentic components.
|
|
5
|
+
Home-page: https://toolmate.ai
|
|
6
|
+
Author: Eliran Wong
|
|
7
|
+
Author-email: support@toolmate.ai
|
|
8
|
+
License: GNU General Public License (GPL)
|
|
9
|
+
Project-URL: Source, https://github.com/eliranwong/agentmake_mcp
|
|
10
|
+
Project-URL: Tracker, https://github.com/eliranwong/agentmake_mcp/issues
|
|
11
|
+
Project-URL: Documentation, https://github.com/eliranwong/agentmake_mcp/wiki
|
|
12
|
+
Project-URL: Funding, https://www.paypal.me/toolmate
|
|
13
|
+
Keywords: mcp agent toolmate ai anthropic azure chatgpt cohere deepseek genai github googleai groq llamacpp mistral ollama openai vertexai xai
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
18
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
19
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Requires-Python: >=3.8, <3.13
|
|
26
|
+
Requires-Dist: agentmake
|
|
27
|
+
Provides-Extra: genai
|
|
28
|
+
Requires-Dist: google-genai >=1.25.0 ; extra == 'genai'
|
|
29
|
+
|
|
30
|
+
=========================================================
|
|
31
|
+
AgentMake MCP: Your Gateway to Multi-Agent AI Systems
|
|
32
|
+
=========================================================
|
|
33
|
+
|
|
34
|
+
**agentmake_mcp** offers the simplest way to set up Modal Context Protocol (MCP) servers, powering them with the versatile agentic components from the `AgentMake AI <https://github.com/eliranwong/agentmake>`_ framework. This project provides the essential tools and infrastructure to create sophisticated multi-agent systems that can tackle complex tasks through collaboration and dynamic task allocation.
|
|
35
|
+
|
|
36
|
+
While **AgentMake AI** provides the core building blocks for creating individual AI agents, **agentmake_mcp** enables you to assemble and orchestrate them. Think of **AgentMake AI** as the factory for creating your specialized AI workers, and **agentmake_mcp** as the central command center where you manage your teams of agents on large-scale projects.
|
|
37
|
+
|
|
38
|
+
With AgentMake MCP, you can:
|
|
39
|
+
|
|
40
|
+
* **Integrate Diverse AI Tools:** Don't limit yourself to a single AI tool. Seamlessly connect AgentMake AI components with third-party AI tools using the standardized MCP interface.
|
|
41
|
+
* **Orchestrate Multiple Agents:** Define and manage how different AI agents, each with unique skills, collaborate to achieve a common goal.
|
|
42
|
+
* **Build Complex Workflows:** Design intricate workflows where agents delegate tasks, share information, and work in parallel to solve problems more efficiently.
|
|
43
|
+
* **Host Your Own MCP Server:** Easily deploy a dedicated server for your multi-agent systems, allowing for robust integration with your applications and services.
|
|
44
|
+
|
|
45
|
+
Key Features
|
|
46
|
+
============
|
|
47
|
+
|
|
48
|
+
* **Easy Server Setup:** Quickly deploy a fully functional MCP server with minimal configuration.
|
|
49
|
+
* **Seamless AgentMake AI Integration:** Leverage the full power of AgentMake AI's 16+ AI backends and 7 agentic components.
|
|
50
|
+
* **MCP Standards:** Supports running both MCP tools and MCP prompts with `AgentMake` components.
|
|
51
|
+
* **Flexible Agent Orchestration:** Define custom collaboration strategies and communication protocols for your agents.
|
|
52
|
+
* **Scalable and Extensible:** Designed to support a growing number of agents and complex workflows.
|
|
53
|
+
* **Developer-Friendly:** A clean and intuitive API for defining and managing your multi-agent systems.
|
|
54
|
+
|
|
55
|
+
Getting Started
|
|
56
|
+
===============
|
|
57
|
+
|
|
58
|
+
1. Prerequisites
|
|
59
|
+
----------------
|
|
60
|
+
|
|
61
|
+
* Python 3.8+
|
|
62
|
+
* Familiarity with the agentic components supported by `AgentMake AI <https://github.com/eliranwong/agentmake>`_.
|
|
63
|
+
|
|
64
|
+
`agentmake_mcp` automatically includes the `agentmake` library.
|
|
65
|
+
|
|
66
|
+
2. Installation
|
|
67
|
+
---------------
|
|
68
|
+
|
|
69
|
+
.. code-block:: bash
|
|
70
|
+
|
|
71
|
+
pip install --upgrade agentmake_mcp
|
|
72
|
+
|
|
73
|
+
To include support for Google's Vertex AI, install with the `[genai]` extra:
|
|
74
|
+
|
|
75
|
+
.. code-block:: bash
|
|
76
|
+
|
|
77
|
+
pip install --upgrade agentmake_mcp[genai]
|
|
78
|
+
|
|
79
|
+
3. Create a Configuration File
|
|
80
|
+
------------------------------
|
|
81
|
+
|
|
82
|
+
Create a Python file (e.g., `my_mcp_server.py`) and define a dictionary that configures your server. This dictionary can be named anything, as the server will automatically discover it.
|
|
83
|
+
|
|
84
|
+
Here is the structure of the configuration dictionary:
|
|
85
|
+
|
|
86
|
+
* `server` (required): `str` - The name of your MCP server.
|
|
87
|
+
* `transport` (optional): `str` - The transport protocol. Defaults to `http`.
|
|
88
|
+
* `port` (optional): `int` - The server port. Defaults to `8080`.
|
|
89
|
+
* `settings` (required): `list[dict]` - A list of dictionaries, where each dictionary defines an MCP prompt or tool.
|
|
90
|
+
|
|
91
|
+
Each dictionary placed in the settings list may have the following keys and values:
|
|
92
|
+
|
|
93
|
+
* name [required/optional] - This field is mandatory unless a tool is specified. It is a string value that serves as an identifier for a MCP prompt or tool.
|
|
94
|
+
* description [required/optional] - This field is also mandatory unless a tool is specified. It is a string that provides a detailed description of a MCP prompt or tool.
|
|
95
|
+
* agentmake [required] - This is a required field that can be either a string or a dictionary. To add a MCP prompt, a string value should be provided. Alternatively, to add a MCP tool, a dictionary should be used.
|
|
96
|
+
|
|
97
|
+
Setting up an MCP Prompt
|
|
98
|
+
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
99
|
+
|
|
100
|
+
To add an MCP prompt, provide the prompt string directly as the value for the `agentmake` key.
|
|
101
|
+
|
|
102
|
+
Setting up an MCP Tool
|
|
103
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
104
|
+
|
|
105
|
+
To add an MCP tool, provide a dictionary for the `agentmake` key. This dictionary specifies the parameters for the `agentmake` signature function from the AgentMake AI library (excluding the `messages` parameter).
|
|
106
|
+
|
|
107
|
+
*For more details on the `agentmake` function parameters, see the `AgentMake AI documentation <https://github.com/eliranwong/agentmake/blob/main/docs/README.md>`_.*
|
|
108
|
+
|
|
109
|
+
4. Running the Server
|
|
110
|
+
---------------------
|
|
111
|
+
|
|
112
|
+
Run the `agentmakemcp` command from your terminal, passing your configuration file as an argument.
|
|
113
|
+
|
|
114
|
+
**For examples**
|
|
115
|
+
|
|
116
|
+
.. code-block:: bash
|
|
117
|
+
|
|
118
|
+
agentmakemcp examples/ask_multiple_models.py
|
|
119
|
+
|
|
120
|
+
.. code-block:: bash
|
|
121
|
+
|
|
122
|
+
agentmakemcp examples/different_persona.py
|
|
123
|
+
|
|
124
|
+
.. code-block:: bash
|
|
125
|
+
|
|
126
|
+
agentmakemcp examples/youtube_utilities.py
|
|
127
|
+
|
|
128
|
+
.. code-block:: bash
|
|
129
|
+
|
|
130
|
+
agentmakemcp teamwork_and_toolmate.py
|
|
131
|
+
|
|
132
|
+
**Remarks:**
|
|
133
|
+
|
|
134
|
+
* You can run multiple AgentMake MCP servers simultaneously on different ports.
|
|
135
|
+
* You can specify different AI backends for different tools, even on the same MCP server.
|
|
136
|
+
|
|
137
|
+
More Examples
|
|
138
|
+
=============
|
|
139
|
+
|
|
140
|
+
You can find more advanced examples, such as chaining multiple agents together, in the `/examples <https://github.com/eliranwong/agentmake_mcp/tree/main/examples>`_ directory.
|
|
141
|
+
|
|
142
|
+
Integration with Third-Party AI Tools:
|
|
143
|
+
========================================
|
|
144
|
+
|
|
145
|
+
For example, to integrate `AgentMake MCP servers` with `Gemini CLI`:
|
|
146
|
+
|
|
147
|
+
.. code-block:: bash
|
|
148
|
+
|
|
149
|
+
agentmakemcp examples/ask_multiple_models.py
|
|
150
|
+
|
|
151
|
+
Edit `.gemini/settings.json` to include the following block:
|
|
152
|
+
|
|
153
|
+
.. code-block:: json
|
|
154
|
+
|
|
155
|
+
{
|
|
156
|
+
// add MCP servers
|
|
157
|
+
"mcpServers": {
|
|
158
|
+
"Ask Multiple AI Models": {
|
|
159
|
+
"httpUrl": "http://127.0.0.1:8080/mcp/"
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
Contributing
|
|
165
|
+
============
|
|
166
|
+
|
|
167
|
+
We welcome contributions from the community! If you have an idea for a new feature, a bug fix, or an improvement to the documentation, please open an issue or submit a pull request.
|
|
168
|
+
|
|
169
|
+
License
|
|
170
|
+
=======
|
|
171
|
+
|
|
172
|
+
This project is licensed under the MIT License. See the `LICENSE file <https://github.com/eliranwong/agentmake_mcp/blob/main/LICENSE>`_ for details.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
agentmakemcp/README.md,sha256=vs8U4aSOxDHGBWfAu_rEpMjzCrThMCbZ_8eHCNo0Ke4,6339
|
|
2
|
+
agentmakemcp/__init__.py,sha256=IDXupJngUjkTMI8Sge-Lh8R2x0QygJ28MJHMWsG96dc,6136
|
|
3
|
+
agentmakemcp/main.py,sha256=PIlNJ-dgHiHHHOGTBHofjY46PRTNRNseiwOu9p-j2dw,1018
|
|
4
|
+
agentmakemcp/package_name.txt,sha256=fnDPfL914e8QqQoYRKa1HlvfoYE1jaP7DmG_58zR8zg,12
|
|
5
|
+
agentmakemcp/requirements.txt,sha256=MoJ3-djAIb8rlOJWSdXciyo2AMYJBq1xXQaI4MZ-N9Q,9
|
|
6
|
+
agentmakemcp-0.0.1.dist-info/METADATA,sha256=a3IMqKF_NavpMf16IHyMaazeRAbOXgIPBVyO2c1-Kfk,7776
|
|
7
|
+
agentmakemcp-0.0.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
8
|
+
agentmakemcp-0.0.1.dist-info/entry_points.txt,sha256=qHK0Au73BPK4DhYYy86XlQz2MxUTqCiU6FjjXhDZtF4,56
|
|
9
|
+
agentmakemcp-0.0.1.dist-info/top_level.txt,sha256=fFBZIL_ORW_naYA46Q3eTsNhZVwk2pl4uaF1YiSV_4s,13
|
|
10
|
+
agentmakemcp-0.0.1.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
agentmakemcp
|