aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-12-12 12:42:23 +0800
committerGitHub <noreply@github.com>2024-12-12 12:42:23 +0800
commite8ffb414c424a59523f94db5e8aba86b723b5b7e (patch)
treea3d2d4319d4a756a4b600b92b1ef76e699632414
parent3584b5c31f4f1f1baa1c350fa46a18752f8bf7c4 (diff)
downloadllm-functions-docker-e8ffb414c424a59523f94db5e8aba86b723b5b7e.tar.gz
feat(mcp-server): support env var `AGENT_TOOLS_ONLY` (#145)
-rw-r--r--mcp/server/README.md14
-rwxr-xr-xmcp/server/index.js13
-rw-r--r--mcp/server/package.json2
3 files changed, 22 insertions, 7 deletions
diff --git a/mcp/server/README.md b/mcp/server/README.md
index f2bda68..3881ca2 100644
--- a/mcp/server/README.md
+++ b/mcp/server/README.md
@@ -8,10 +8,10 @@ Let LLM-functions tools/agents be used through the Model Context Protocol.
{
"mcpServers": {
"tools": {
- "command": "node",
+ "command": "npx",
"args": [
- "<path-to-llm-functions>/mcp/server/index.js",
- "<path-to-llm-functions>"
+ "mcp-llm-functions",
+ "<llm-functions-dir>"
]
}
}
@@ -26,11 +26,15 @@ Let LLM-functions tools/agents be used through the Model Context Protocol.
"<agent-name>": {
"command": "node",
"args": [
- "<path-to-llm-functions>/mcp/server/index.js",
- "<path-to-llm-functions>",
+ "mcp-llm-functions",
+ "<llm-functions-dir>"
"<agent-name>",
]
}
}
}
```
+
+## Environment Variables
+
+- `AGENT_TOOLS_ONLY`: Set to `true` or `1` to ignore shared tools and display only agent tools. \ No newline at end of file
diff --git a/mcp/server/index.js b/mcp/server/index.js
index d725568..3f4c5b6 100755
--- a/mcp/server/index.js
+++ b/mcp/server/index.js
@@ -33,6 +33,18 @@ try {
console.error(`Failed to read functions at '${functionsJsonPath}'`);
process.exit(1);
}
+const agentToolsOnly = process.env["AGENT_TOOLS_ONLY"] === "true" || process.env["AGENT_TOOLS_ONLY"] === "1";
+functions = functions.filter(f => {
+ if (f.mcp) {
+ return false;
+ }
+ if (agentToolsOnly) {
+ return f.agent;
+ } else {
+ return true;
+ }
+});
+
const env = Object.assign({}, process.env, {
PATH: `${path.join(rootDir, "bin")}:${process.env.PATH}`
});
@@ -114,7 +126,6 @@ function runCommand(command, args, env) {
async function runServer() {
const transport = new StdioServerTransport();
await server.connect(transport);
- console.error("LLM-Functions MCP Server running on stdio");
}
runServer().catch(console.error); \ No newline at end of file
diff --git a/mcp/server/package.json b/mcp/server/package.json
index 69bbcc2..22fcd01 100644
--- a/mcp/server/package.json
+++ b/mcp/server/package.json
@@ -1,6 +1,6 @@
{
"name": "mcp-llm-functions",
- "version": "1.0.0",
+ "version": "1.1.0",
"description": "Let LLM-functions tools/agents be used through the Model Context Protocol",
"license": "MIT",
"author": "sigoden <sigoden@gmail.com>",