{"_id":"@artinet/agent-relay-mcp","_rev":"6-5d9cd4934111e87b2772b456342e2f9a","name":"@artinet/agent-relay-mcp","dist-tags":{"latest":"0.1.5"},"versions":{"0.0.1":{"name":"@artinet/agent-relay-mcp","version":"0.0.1","keywords":["artinet","agent2agent","modelcontextprotocol","mcp","a2a","agentic","ai","agent","sdk","artificial intelligence","ai agent","multi-agent","multi-agent system","orchestration"],"author":{"name":"artinet"},"license":"Apache-2.0","_id":"@artinet/agent-relay-mcp@0.0.1","maintainers":[{"name":"human01","email":"humans@artinet.io"}],"homepage":"https://github.com/the-artinet-project/mcp/tree/main#readme","bugs":{"url":"https://github.com/the-artinet-project/mcp/issues"},"bin":{"agent-relay-mcp":"dist/bin/stdio.js"},"dist":{"shasum":"f17da898605d7c12e55ce43362499d148184b9f1","tarball":"https://registry.npmjs.org/@artinet/agent-relay-mcp/-/agent-relay-mcp-0.0.1.tgz","fileCount":27,"integrity":"sha512-y7kBj3URoRoK3dp+qMI1YqZuQEJsIoH0JI9V7Ga3KwNliU+bWnOQ9cMrW81QeR6lUvInRfAb9L3sTOFTyAggLQ==","signatures":[{"sig":"MEUCIQCa52g/3Wdzw4EKKcqYJK4cRnPKjisNWv8Aw8QHshf5zQIgcD2EfL99fqcBrhKHdjvLHJw3VtX21HXhWSw9RFBG3Rk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52178},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","issues":{"url":"https://github.com/the-artinet-project/mcp/issues"},"module":"./dist/src/index.js","engines":{"node":">=18.9.1"},"gitHead":"66967a2df454da82ec42f2d15d2398dc59caa763","rootDir":".","scripts":{"dev":"tsc --watch","test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc --project tsconfig.json","clean":"rimraf dist","start":"node dist/bin/stdio.js","clean:all":"rimraf dist node_modules package-lock.json","prepublishOnly":"npm run clean:all && npm i && npm run build && npm test"},"_npmUser":{"name":"human01","email":"humans@artinet.io"},"repository":{"url":"git+https://github.com/the-artinet-project/mcp.git#main","type":"git"},"_npmVersion":"10.2.4","description":"A Model Context Protocol (MCP) server for relaying messages between A2A enabled AI agents.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","p-limit":"^7.2.0","portscanner":"^2.2.0","@artinet/sdk":"^0.5.11","@artinet/types":"^0.0.4","@modelcontextprotocol/sdk":"^1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.25.1","rimraf":"^5.0.5","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.17.50","typescript-eslint":"^8.31.0","@types/portscanner":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/agent-relay-mcp_0.0.1_1761880817294_0.866733286051147","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@artinet/agent-relay-mcp","version":"0.0.2","keywords":["artinet","agent2agent","modelcontextprotocol","mcp","a2a","agentic","ai","agent","sdk","artificial intelligence","ai agent","multi-agent","multi-agent system","orchestration"],"author":{"name":"artinet"},"license":"Apache-2.0","_id":"@artinet/agent-relay-mcp@0.0.2","maintainers":[{"name":"human01","email":"humans@artinet.io"}],"homepage":"https://github.com/the-artinet-project/mcp/tree/main#readme","bugs":{"url":"https://github.com/the-artinet-project/mcp/issues"},"bin":{"agent-relay-mcp":"dist/bin/stdio.js"},"dist":{"shasum":"de28645416d8fde6306349e504e2dde108e3d862","tarball":"https://registry.npmjs.org/@artinet/agent-relay-mcp/-/agent-relay-mcp-0.0.2.tgz","fileCount":9,"integrity":"sha512-RHq7+j/Or2ER3tGkhvk23or2mS+o4K+e8L9W6kck5WcDLWSKP3Y+qu1+HbSZHqxenaliOHz5Teu9CHhm+aQ3fQ==","signatures":[{"sig":"MEUCIQCp7p6weDX5yobdi2g/JyduEiHqwC+5oo90ypG6P7tHhQIgAcr0Ip0tVuPNDpIwkQrhVJtu1V9uTS4Myl3zYfyO2Qs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32080},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","issues":{"url":"https://github.com/the-artinet-project/mcp/issues"},"module":"./dist/src/index.js","engines":{"node":">=18.9.1"},"gitHead":"dda2ca3005bab096555d86096200a1db5fac6d44","rootDir":".","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc --project tsconfig.json","clean":"rimraf dist","start":"node dist/bin/stdio.js","clean:all":"rimraf dist node_modules package-lock.json","prepublishOnly":"npm run clean:all && npm i && npm run build && npm test"},"_npmUser":{"name":"human01","email":"humans@artinet.io"},"repository":{"url":"git+https://github.com/the-artinet-project/mcp.git#main","type":"git"},"_npmVersion":"10.2.4","description":"A Model Context Protocol (MCP) server for relaying messages between A2A enabled AI agents.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","p-limit":"^7.2.0","portscanner":"^2.2.0","@artinet/sdk":"^0.5.13","@artinet/types":"^0.0.5","@artinet/agent-relay":"^0.0.3","@modelcontextprotocol/sdk":"1.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.25.1","rimraf":"^5.0.5","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.17.50","typescript-eslint":"^8.31.0","@types/portscanner":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/agent-relay-mcp_0.0.2_1762539325672_0.5375643370917804","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@artinet/agent-relay-mcp","version":"0.0.3","keywords":["artinet","agent2agent","modelcontextprotocol","mcp","a2a","agentic","ai","agent","sdk","artificial intelligence","ai agent","multi-agent","multi-agent system","orchestration"],"author":{"name":"artinet"},"license":"Apache-2.0","_id":"@artinet/agent-relay-mcp@0.0.3","maintainers":[{"name":"human01","email":"humans@artinet.io"}],"homepage":"https://github.com/the-artinet-project/mcp/tree/main#readme","bugs":{"url":"https://github.com/the-artinet-project/mcp/issues"},"bin":{"agent-relay-mcp":"dist/bin/stdio.js"},"dist":{"shasum":"a03fab733df8009968c61197d063cb31cdf1c75a","tarball":"https://registry.npmjs.org/@artinet/agent-relay-mcp/-/agent-relay-mcp-0.0.3.tgz","fileCount":9,"integrity":"sha512-X6fuJNrAZuLEQ/Taog5L3kQo8hUYZth7qO6t4B5czldjQ6L7DbHmhxPW5qDKV13+jHdAQ4qpBL9M9w1JKZeVYQ==","signatures":[{"sig":"MEUCIQD1Hn8/Gc+lMLiKKDFGNtfnIZWEat03hcTccbCRZSD5ZQIgQWlfHN+rLuIPqIAETfTWFZ1fPL+MnGjaYPvmPrQXD8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32080},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","issues":{"url":"https://github.com/the-artinet-project/mcp/issues"},"module":"./dist/src/index.js","engines":{"node":">=18.9.1"},"gitHead":"a917eb90a0cfc154104d47acf2c10acc94e9a46c","rootDir":".","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc --project tsconfig.json","clean":"rimraf dist","start":"node dist/bin/stdio.js","clean:all":"rimraf dist node_modules package-lock.json","prepublishOnly":"npm run clean:all && npm i && npm run build && npm test"},"_npmUser":{"name":"human01","email":"humans@artinet.io"},"repository":{"url":"git+https://github.com/the-artinet-project/mcp.git#main","type":"git"},"_npmVersion":"10.2.4","description":"A Model Context Protocol (MCP) server for relaying messages between A2A enabled AI agents.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","p-limit":"^7.2.0","portscanner":"^2.2.0","@artinet/sdk":"^0.5.13","@artinet/types":"^0.0.5","@artinet/agent-relay":"^0.0.3","@modelcontextprotocol/sdk":"1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.25.1","rimraf":"^5.0.5","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.17.50","typescript-eslint":"^8.31.0","@types/portscanner":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/agent-relay-mcp_0.0.3_1762539855664_0.37027207347715274","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@artinet/agent-relay-mcp","version":"0.0.4","keywords":["artinet","agent2agent","modelcontextprotocol","mcp","a2a","agentic","ai","agent","sdk","artificial intelligence","ai agent","multi-agent","multi-agent system","orchestration"],"author":{"name":"artinet"},"license":"Apache-2.0","_id":"@artinet/agent-relay-mcp@0.0.4","maintainers":[{"name":"human01","email":"humans@artinet.io"}],"homepage":"https://github.com/the-artinet-project/mcp/tree/main#readme","bugs":{"url":"https://github.com/the-artinet-project/mcp/issues"},"bin":{"agent-relay-mcp":"dist/bin/stdio.js"},"dist":{"shasum":"e10a92cc3abdd253c2337bea4a940b1bd801461f","tarball":"https://registry.npmjs.org/@artinet/agent-relay-mcp/-/agent-relay-mcp-0.0.4.tgz","fileCount":9,"integrity":"sha512-uwMwBi105gt6+iqXgrKcHrbz/oDbU/y9Z0pp4UQftNwFH+uruwdnze7H3xxecIHtm7OaS0IDEtYVk4fharDs3w==","signatures":[{"sig":"MEQCIAJASK/uK7ighgK6xSTL3d2/Pr9VoJk9AYzMy/7fKIk8AiAxcDPIot/53sbunW4LMoK6lVfadpe7Ko0WkpRGx0wdOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32080},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","issues":{"url":"https://github.com/the-artinet-project/mcp/issues"},"module":"./dist/src/index.js","engines":{"node":">=18.9.1"},"gitHead":"ea913efc79a3303002373bf3288728bfca75a446","rootDir":".","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc --project tsconfig.json","clean":"rimraf dist","start":"node dist/bin/stdio.js","clean:all":"rimraf dist node_modules package-lock.json","prepublishOnly":"npm run clean:all && npm i && npm run build && npm test"},"_npmUser":{"name":"human01","email":"humans@artinet.io"},"repository":{"url":"git+https://github.com/the-artinet-project/mcp.git#main","type":"git"},"_npmVersion":"10.2.4","description":"A Model Context Protocol (MCP) server for relaying messages between A2A enabled AI agents.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","p-limit":"^7.2.0","portscanner":"^2.2.0","@artinet/sdk":"^0.5.14","@artinet/types":"^0.0.5","@artinet/agent-relay":"^0.0.4","@modelcontextprotocol/sdk":"1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.25.1","rimraf":"^5.0.5","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.17.50","typescript-eslint":"^8.31.0","@types/portscanner":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/agent-relay-mcp_0.0.4_1762603443317_0.6922629227316419","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@artinet/agent-relay-mcp","version":"0.0.5","keywords":["artinet","agent2agent","modelcontextprotocol","mcp","a2a","ai","agent","artificial intelligence","orchestration"],"author":{"name":"artinet"},"license":"Apache-2.0","_id":"@artinet/agent-relay-mcp@0.0.5","maintainers":[{"name":"human01","email":"humans@artinet.io"}],"homepage":"https://github.com/the-artinet-project/mcp/tree/main#readme","bugs":{"url":"https://github.com/the-artinet-project/mcp/issues"},"bin":{"agent-relay-mcp":"dist/bin/stdio.js"},"dist":{"shasum":"665ba18765b07dd76658dbe633aa78e6c8cb7462","tarball":"https://registry.npmjs.org/@artinet/agent-relay-mcp/-/agent-relay-mcp-0.0.5.tgz","fileCount":9,"integrity":"sha512-T4PIS22qucYBV7YS9kA0KVmxrq51qkr7mBy5ySD3hM/0hCnJJa0r7u4vRTcqH+0YHkmlR4+XXa1mnGOcohce1g==","signatures":[{"sig":"MEYCIQDYYtE3qDUw/QiecaLRI1N1QIXGX6N9NIotrLWLdlbwhwIhAK3BrOWGQh8i1DXlEyJIfuWdLIxMe8/n253xopToq0Pm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32420},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","issues":{"url":"https://github.com/the-artinet-project/mcp/issues"},"module":"./dist/src/index.js","engines":{"node":">=18.9.1"},"gitHead":"24dfd13bf5f731c7ac63fe8042048d29b6420f68","rootDir":".","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc --project tsconfig.json","clean":"rimraf dist","start":"node dist/bin/stdio.js","clean:all":"rimraf dist node_modules package-lock.json","prepublishOnly":"npm run clean:all && npm i && npm run build && npm test"},"_npmUser":{"name":"human01","email":"humans@artinet.io"},"repository":{"url":"git+https://github.com/the-artinet-project/mcp.git#main","type":"git"},"_npmVersion":"10.2.4","description":"A Model Context Protocol (MCP) server for relaying messages between A2A enabled AI agents.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","p-limit":"^7.2.0","portscanner":"^2.2.0","@artinet/sdk":"^0.5.18","@artinet/types":"^0.0.8","@artinet/agent-relay":"^0.0.8","@modelcontextprotocol/sdk":"^1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.25.1","rimraf":"^5.0.5","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.17.50","typescript-eslint":"^8.31.0","@types/portscanner":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/agent-relay-mcp_0.0.5_1763880027653_0.4976270278978352","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@artinet/agent-relay-mcp","version":"0.1.5","description":"A Model Context Protocol (MCP) server for relaying messages between A2A enabled AI agents.","author":{"name":"artinet"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/the-artinet-project/artinet.git#main"},"issues":{"url":"https://github.com/the-artinet-project/artinet/issues"},"bin":{"agent-relay-mcp":"dist/bin/stdio.js"},"keywords":["artinet","agent2agent","modelcontextprotocol","mcp","a2a","ai","agent","artificial intelligence","orchestration"],"type":"module","main":"./dist/src/index.js","module":"./dist/src/index.js","types":"./dist/src/index.d.ts","rootDir":".","scripts":{"build":"tsc --project tsconfig.json","clean":"rimraf dist","clean:all":"rimraf dist node_modules package-lock.json","start":"node dist/bin/stdio.js","test":"NODE_OPTIONS=--experimental-vm-modules jest","prepublishOnly":"npm run clean:all && npm i && npm run build && npm test"},"dependencies":{"@artinet/agent-relay":"^0.1.1","@artinet/sdk":"^0.6.4","@artinet/types":"^0.0.9","@modelcontextprotocol/sdk":"^1.24.3","p-limit":"^7.2.0","portscanner":"^2.2.0","uuid":"^13.0.0","zod":"^3.25"},"devDependencies":{"@types/cors":"^2.8.17","@types/node":"^25.0.9","@types/portscanner":"^2.1.4","eslint":"^9.39.2","jest":"^30.2.0","rimraf":"^6.1.2","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.9.3","typescript-eslint":"^8.53.0"},"engines":{"node":">=20.0.0"},"_id":"@artinet/agent-relay-mcp@0.1.5","gitHead":"fd9b80c39215368906e4b0f8a3abed421dd839cc","bugs":{"url":"https://github.com/the-artinet-project/artinet/issues"},"homepage":"https://github.com/the-artinet-project/artinet/tree/main#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-3JA1g79OxA0NeP6rPVARcK5RiMmWmCRg0s3isMrlJ/OjYDvaxJEckYYgoFkgO6ap94Ov4uFqCXBUmcZouDBSXQ==","shasum":"3e40e3f6eb57da9ee1421cc27c1a73de5f34ca0f","tarball":"https://registry.npmjs.org/@artinet/agent-relay-mcp/-/agent-relay-mcp-0.1.5.tgz","fileCount":9,"unpackedSize":32328,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCMNKyXEjO7TTFeaYq76YnhU63rhF4sNhWkPnKRb7EdTQIhAK/aDXv1pYuHoESxxyseDJVRQ/L5JZw1d0UIMBGkZsQW"}]},"_npmUser":{"name":"human01","email":"humans@artinet.io"},"directories":{},"maintainers":[{"name":"human01","email":"humans@artinet.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-relay-mcp_0.1.5_1768749991788_0.8971635038738797"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-31T03:20:17.187Z","modified":"2026-01-18T15:26:32.061Z","0.0.1":"2025-10-31T03:20:17.495Z","0.0.2":"2025-11-07T18:15:25.870Z","0.0.3":"2025-11-07T18:24:15.871Z","0.0.4":"2025-11-08T12:04:03.512Z","0.0.5":"2025-11-23T06:40:27.923Z","0.1.5":"2026-01-18T15:26:31.923Z"},"bugs":{"url":"https://github.com/the-artinet-project/artinet/issues"},"author":{"name":"artinet"},"license":"Apache-2.0","homepage":"https://github.com/the-artinet-project/artinet/tree/main#readme","keywords":["artinet","agent2agent","modelcontextprotocol","mcp","a2a","ai","agent","artificial intelligence","orchestration"],"repository":{"type":"git","url":"git+https://github.com/the-artinet-project/artinet.git#main"},"description":"A Model Context Protocol (MCP) server for relaying messages between A2A enabled AI agents.","maintainers":[{"name":"human01","email":"humans@artinet.io"}],"readme":"[![Website](https://img.shields.io/badge/website-artinet.io-black)](https://artinet.io/)\n[![npm version](https://img.shields.io/npm/v/@artinet/agent-relay-mcp.svg)](https://www.npmjs.com/package/@artinet/agent-relay-mcp)\n[![npm downloads](https://img.shields.io/npm/dt/@artinet/agent-relay-mcp.svg)](https://www.npmjs.com/package/@artinet/agent-relay-mcp)\n[![Apache License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n[![Known Vulnerabilities](https://snyk.io/test/npm/@artinet/agent-relay-mcp/badge.svg)](https://snyk.io/test/npm/@artinet/agent-relay-mcp)\n[![GitHub stars](https://img.shields.io/github/stars/the-artinet-project/mcp?style=social)](https://github.com/the-artinet-project/mcp/stargazers)\n[![Discord](https://dcbadge.limes.pink/api/server/DaxzSchmmX?style=flat)](https://discord.gg/DaxzSchmmX)\n\n# Agent Relay MCP Server\n\nA [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that enables AI agents to discover and communicate with other [A2A (Agent-to-Agent)](https://github.com/a2aproject/A2A) enabled AI agents through the [@artinet/sdk](https://github.com/the-artinet-project/artinet-sdk) and [@artinet/agent-relay](https://github.com/the-artinet-project/agent-relay).\n\n## Features\n\n- **Automatic Agent Discovery**: Scans network ports to discover available agents\n- **Multi-Agent Orchestration**: Coordinate workflows across multiple specialized agents\n- **Message Relay**: Send messages to agents and receive responses with full task context\n- **Task Management**: Query task status and cancel running tasks\n- **Agent Discovery**: View and search agents by name, description, or skills\n\n## Installation\n\n```bash\nnpm install @artinet/agent-relay-mcp\n```\n\n## Usage\n\n### Commandline\n\n```bash\nnpx @artinet/agent-relay-mcp [callerId] [startPort] [endPort] [scanning-threads]\n```\n\nExample:\n\n```bash\nnpx @artinet/agent-relay-mcp my-assistant 3000 3100 10\n```\n\n\\*We recommend allocating a small port range because port scanning is resource intensive.\n\n### As an MCP Server\n\n```typescript\nimport { RelayServer } from \"@artinet/agent-relay-mcp\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\n\nconst server = new RelayServer({\n  name: \"agent-relay-server\",\n  version: \"0.0.1\",\n});\n\nawait server.init({\n  callerId: \"my-assistant-name\",\n  scanConfig: {\n    host: \"localhost\",\n    startPort: 3000,\n    endPort: 3100,\n    threads: 10,\n  },\n});\n\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n```\n\n## Tool Reference\n\nThe server exposes six tools for agent interaction:\n\n### `sendMessage`\n\nSend a message to an agent and receive a response.\n\n| Parameter | Type   | Description                                 |\n| --------- | ------ | ------------------------------------------- |\n| `agentId` | string | The ID of the agent to send the message to  |\n| `message` | string | The message content to send                 |\n| `taskId`  | string | (Optional) Task ID to continue conversation |\n\n### `getTask`\n\nGet the current status of a running task.\n\n| Parameter | Type   | Description                 |\n| --------- | ------ | --------------------------- |\n| `agentId` | string | The ID of the agent         |\n| `taskId`  | string | The ID of the task to query |\n\n### `cancelTask`\n\nCancel a running task.\n\n| Parameter | Type   | Description                  |\n| --------- | ------ | ---------------------------- |\n| `agentId` | string | The ID of the agent          |\n| `taskId`  | string | The ID of the task to cancel |\n\n### `getAgentCard`\n\nGet detailed information about an agent, including its capabilities and skills.\n\n| Parameter | Type   | Description         |\n| --------- | ------ | ------------------- |\n| `agentId` | string | The ID of the agent |\n\n### `viewAgents`\n\nList all registered agents available to the relay.\n\n### `searchAgents`\n\nSearch for agents by name, description, or skills.\n\n| Parameter | Type   | Description                     |\n| --------- | ------ | ------------------------------- |\n| `query`   | string | Search query (case-insensitive) |\n\n## Configuration\n\n### Environment Variables\n\n- `ARTINET_RELAY_SYNC_INTERVAL`: Agent discovery sync interval in milliseconds (default: 2500)\n\n### Configuration Options\n\n```typescript\ninterface AgentRelayConfig {\n  callerId: string; // Unique identifier for this relay instance (ensures the agent cannot call itself)\n  syncInterval?: number; // Sync interval in ms (default: 2500)\n  scanConfig?: {\n    host?: string; // Host to scan (default: \"localhost\")\n    startPort?: number; // Starting port (default: 3000)\n    endPort?: number; // Ending port (default: 3100)\n    threads?: number; // Concurrent scan threads (default: 10)\n    fallbackPath?: string; // Agent card fallback path (default: \"/.well-known/agent-card.json\")\n  };\n}\n```\n\n## How It Works\n\n1. **Discovery**: The relay scans a port range (default: 3000-3100) to find agents that expose A2A endpoints\n2. **Registration**: Discovered agents are registered and their capabilities are cached\n3. **Synchronization**: Periodic sync keeps the agent registry up-to-date\n4. **Relay**: Messages are forwarded to appropriate agents based on agent IDs\n5. **Task Management**: Task status and cancellation are handled through the relay interface\n\n### Build\n\n```bash\nnpm run build\n```\n\n### Test\n\n```bash\nnpm test\n```\n\n## License\n\nApache-2.0\n\n## References\n\n- [MCP Specification](https://modelcontextprotocol.io)\n- [A2A Protocol Documentation](https://artinet.io)\n- [Artinet SDK](https://github.com/the-artinet-project/sdk)\n","readmeFilename":"README.md"}