{"_id":"@ageflow/mcp-server","_rev":"11-d6874794b379dc0a08a830bdc979530b","name":"@ageflow/mcp-server","dist-tags":{"latest":"0.5.1"},"versions":{"0.1.0":{"name":"@ageflow/mcp-server","version":"0.1.0","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.1.0","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/agentflow/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"ab147f198283d084c397fe9875d7b2d885b3655a","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":50,"integrity":"sha512-+e/d1L+CWclFIUQh4uVTBGNjP9SYQxD80dyzr7lK8YBFMYIolx9rKzepZOW8HjlXQNw9clBHEgAiC0KBMv0lNg==","signatures":[{"sig":"MEQCIGzLc+1ZmHeYxGvzOBeA92bOhw4Lzegb/B38siQZMba7AiA+KjtHu0lUuTEGisru/hi8pSjVgr/OGyzW/HhQMwvTNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69694},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3c1183effacdc1009c9067343d5b71d226be05e8","private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"workspace:*","@ageflow/executor":"workspace:*","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1776330390446_0.2782022779125164","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ageflow/mcp-server","version":"0.2.0","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.2.0","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/agentflow/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"3a49b53fb745e3910b5861afa362f9d313ee11cf","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":50,"integrity":"sha512-3nn03+QqoHEE9B20NXQvBxGKIB4+PSRemOUXHHIDwqllBZcfi194Q9Ls4YrpWMo1/dSRl+VLuRwzcCyoE7c57Q==","signatures":[{"sig":"MEUCIGP+5tVh98ZSEDG+h0zdqAdmaxTYNlCRJAFr8jQcegI3AiEA6DfZOVh3Cd7yw+LwLWDvj2ehcIJR6lpQzNAaTIecg14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69694},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c9ec02fd33cba8108a1255623ba329097acfe908","private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"workspace:*","@ageflow/executor":"workspace:*","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.0_1776330807387_0.2850500372715925","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ageflow/mcp-server","version":"0.3.0","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.3.0","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"d85afe209ccd4623c7b0266d74e9b14204046e00","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.3.0.tgz","fileCount":62,"integrity":"sha512-Cdmdh6MTHPXDORKXkvN1u3uGTz2Fgpt4uZdPGt8MuqtZujHxV+eorhWtQr//QkCHnJyJP0e5zL2/FLE6IwQESA==","signatures":[{"sig":"MEUCIQDB+yVjcbwEkQo0MI77OVSWuqXLSfnnamyaaY4hmWzV1QIgRjdqVjhPgozb/D6GjmIYvjJcihI5OSi4xSFAhDgETF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131588},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f055450765c4b4f8e6a06d3bcedb2e337395adb8","private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"workspace:*","@ageflow/server":"workspace:*","@ageflow/executor":"workspace:*","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.0_1776378001206_0.6474955472275232","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@ageflow/mcp-server","version":"0.3.2","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.3.2","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"80ee2a829a50e803742ed388b35bea203e0bf3dd","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.3.2.tgz","fileCount":98,"integrity":"sha512-hB2pvQezsQi+Lzc28afTfOyZbYNQV/m1SaYpcoKcPc8VL+lDM10NMPYEzAhFy4W7/8XCwQrA+j6Xas4xsrrJ9g==","signatures":[{"sig":"MEYCIQCd5jIjTJuy29l8SsqhlBHXpNZsUT+1MMw0nruwfiyTowIhAP+CUuDy59r6iDKHm5oFqHuY1hwWHHbSKUgjfmcnHBgc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174153},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"67e25292e8f64b4c7643f1ac12164e771122c632","private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"^0.3.2","@ageflow/server":"^0.3.2","@ageflow/executor":"^0.3.2","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.2_1776395165429_0.8259423353833288","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@ageflow/mcp-server","version":"0.3.3","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.3.3","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"d1deab21b1bd5a9fe1f413ab87b06a884a86fd50","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.3.3.tgz","fileCount":130,"integrity":"sha512-lfKSnRYNjQ/xjqPAPUiKT6k+gZgSLzFMAlV3iQ0ZEJKvAESAdhCy4uOX4beJlYyUg9Ynr+oalmmArhTG7X3irQ==","signatures":[{"sig":"MEUCIBLOwclDXBrp1PKDu5Veg27ClU6UR9AB4z7FLbUNPpTGAiEAz5lGen9L78riwtdTgsif/fC81gJX2/b4aygCuPOdueg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217048},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"^0.4.3","@ageflow/server":"^0.4.2","@ageflow/executor":"^0.4.3","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.3_1776415486479_0.3559363879701092","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@ageflow/mcp-server","version":"0.3.4","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.3.4","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"25d6aeb02c0662b50c4f5139caa1f7f4b22c3950","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.3.4.tgz","fileCount":62,"integrity":"sha512-Rcswxc0jFLoXC+1mp1HZkN+cH0NmUHurONq574M94B/ZFXCz1FRDoJ42C4Z60WRDjRC+6TTIEUP2W+rziABWsw==","signatures":[{"sig":"MEUCIGSq6IWv0NeJOBmri4CTQu5Sm0/mZvC5YKzHMLiiTtQ7AiEAugG14QfA/jq8m1vcXc2/DZklk73qg/1rKRU1pslt6rE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131573},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"^0.5.0","@ageflow/server":"^0.4.3","@ageflow/executor":"^0.5.0","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.4_1776422127680_0.8688706879295112","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@ageflow/mcp-server","version":"0.3.5","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.3.5","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"8b3a74a492ed84779058ea1500e26e23f805e482","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.3.5.tgz","fileCount":62,"integrity":"sha512-MgXJV31twkLoV+CUjfPcU1O7JQrVKplQOi44BGJjD1WG4b7Hb0Xea1mjCff77DN6kPkNfEWNvSGUaN3OMyJQUQ==","signatures":[{"sig":"MEYCIQCCH41jNyZqEUhvCoMI5dE5jELD2mIoWa9fGhRbu1uzSAIhAL/pI0jzsVpL1650/0U6MMjLXgTTldAO66uBQ69H9LF9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131573},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"^0.6.0","@ageflow/server":"^0.4.4","@ageflow/executor":"^0.6.0","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.5_1776434957816_0.9132774192424848","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@ageflow/mcp-server","version":"0.4.0","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.4.0","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"746948e71089ec4d41899231ef50d6cd4701375c","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.4.0.tgz","fileCount":66,"integrity":"sha512-duOOYwgzXKd16JocoQu4iI2pejj7mi8GMZL+qTgsLok0oFziGq38kSXerMBJdOgaM6eeQ1yLWEfIV8pEuXDtIQ==","signatures":[{"sig":"MEYCIQD/GDKs3wd6eU3Yz/mslIgijT1aWLcUgz2K34Ufk2bwpAIhANmu53UxjNNfxv7HBXneimWmiVu0eCxTA/4Z4h0NCs3K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157310},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"^0.6.0","@ageflow/server":"^0.4.4","@ageflow/executor":"^0.6.0","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.0_1776438174321_0.8346616936952973","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@ageflow/mcp-server","version":"0.4.1","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.4.1","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"645a9e0bce286dd50503f71ec85fc1994ff84dd4","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.4.1.tgz","fileCount":66,"integrity":"sha512-ff56d3D82tkXTaaaYrSGTmhnF6fnmc+2cbK8yA0A1kRX87+fwgh7CP5b/5YMcqHA1/r+DReZZe7SIvH1sot/8g==","signatures":[{"sig":"MEYCIQC/JcqOWvprIlKp4i9f0DCGU+v54IH0RUbkwWiWsQLxjwIhAIOCC3GBeGOzFSQ+PvC5buvvN856AHZGU8tsbRSGINo2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157958},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"^0.6.0","@ageflow/server":"^0.4.4","@ageflow/executor":"^0.6.0","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.1_1776440948391_0.7051323096140787","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@ageflow/mcp-server","version":"0.5.0","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.5.0","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"dist":{"shasum":"70021ee6e7e62cd0c1620fc3d18ffe764287ee11","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.5.0.tgz","fileCount":70,"integrity":"sha512-zKPVQ9IE723k9apVeWizG6MbE9SiaNgTuq+mJFoOz49pYJ0CG4BOfzUI/F+Cd0wL+sqgRuYM0No5GraWrcxDLQ==","signatures":[{"sig":"MEUCIC/Pv9fIkQEgLsF8JToxFVQRe02VZX3ArheK7k+5eUz2AiEA1iSyz2po8nqCUW1yQhn5osSWdtwhvL+trKS1dBI4S+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212051},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"scripts":{"lint":"biome check src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"repository":{"url":"git+https://github.com/Neftedollar/ageflow.git","type":"git"},"_npmVersion":"11.11.0","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@ageflow/core":"^0.6.0","@ageflow/server":"^0.4.4","@ageflow/executor":"^0.6.0","zod-to-json-schema":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^2.1.0","@types/node":"^22.0.0","@ageflow/testing":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.0_1776447330794_0.36961857913836527","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@ageflow/mcp-server","version":"0.5.1","description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","type":"module","private":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","test":"vitest run","lint":"biome check src/"},"dependencies":{"@ageflow/core":"^0.6.0","@ageflow/executor":"^0.7.0","@ageflow/server":"^0.4.4","@modelcontextprotocol/sdk":"^1.0.0","zod-to-json-schema":"^3.23.0"},"devDependencies":{"@ageflow/testing":"workspace:*","@types/node":"^22.0.0","vitest":"^2.1.0","zod":"^3.23.0"},"repository":{"type":"git","url":"git+https://github.com/Neftedollar/ageflow.git"},"keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"license":"MIT","_id":"@ageflow/mcp-server@0.5.1","bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-20PcAQ3HNvUJnG1ql/GbWEyONM6TvO7ow9k30eAEC+BkkIpD+Ww735OB4axb2YYt+Vg9PF0RiyWJygrv8VJyKQ==","shasum":"f4146980810651bc2d5d2415185da7bf59407e7a","tarball":"https://registry.npmjs.org/@ageflow/mcp-server/-/mcp-server-0.5.1.tgz","fileCount":170,"unpackedSize":340421,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAnatMUfFeZpsh83HE7J+lQqe5mmSHtvZtEhQ/eyyGx/AiEA6sqI0qw8EfQk5Tg2rcLd8lQ6YZTU5wtvdVHWinriBpM="}]},"_npmUser":{"name":"neftedollar","email":"oildollar@gmail.com"},"directories":{},"maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.5.1_1776473880660_0.5063386184427803"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T09:06:30.313Z","modified":"2026-04-18T00:58:00.977Z","0.1.0":"2026-04-16T09:06:30.572Z","0.2.0":"2026-04-16T09:13:27.552Z","0.3.0":"2026-04-16T22:20:01.362Z","0.3.2":"2026-04-17T03:06:05.565Z","0.3.3":"2026-04-17T08:44:46.618Z","0.3.4":"2026-04-17T10:35:27.836Z","0.3.5":"2026-04-17T14:09:17.960Z","0.4.0":"2026-04-17T15:02:54.477Z","0.4.1":"2026-04-17T15:49:08.530Z","0.5.0":"2026-04-17T17:35:30.984Z","0.5.1":"2026-04-18T00:58:00.835Z"},"bugs":{"url":"https://github.com/Neftedollar/ageflow/issues"},"license":"MIT","homepage":"https://github.com/Neftedollar/ageflow/tree/master/packages/mcp-server","keywords":["mcp","ai","agents","workflow","llm","ageflow","claude"],"repository":{"type":"git","url":"git+https://github.com/Neftedollar/ageflow.git"},"description":"Expose ageflow workflows as MCP tools (stdio transport, progress streaming, HITL via elicitation).","maintainers":[{"name":"neftedollar","email":"oildollar@gmail.com"}],"readme":"# @ageflow/mcp-server\n\nExpose ageflow workflows as MCP tools. Paired with the `agentwf mcp serve` CLI command.\n\n## Status\n\nv0.2.0 — stdio transport, workflow-as-tool, progress streaming, HITL via elicitation, **async job mode**.\n\n## Usage via CLI\n\n```bash\nagentwf mcp serve ./workflow.ts\n```\n\nSee the root `packages/cli/README.md` for CLI options.\n\n## Claude Desktop config\n\n```json\n{\n  \"mcpServers\": {\n    \"my-workflow\": {\n      \"command\": \"agentwf\",\n      \"args\": [\"mcp\", \"serve\", \"/absolute/path/to/workflow.ts\"]\n    }\n  }\n}\n```\n\n## Async job mode\n\nBy default the server exposes a single **synchronous streaming tool** that\nblocks until the workflow finishes.  For long-running workflows (> 30 s) or\nwhen you need fire-and-forget behaviour, enable **async job mode** with the\n`--async` flag.\n\n```bash\nagentwf mcp serve ./workflow.ts --async\n```\n\n### When to use async mode\n\n| Situation | Recommendation |\n|-----------|---------------|\n| Workflow takes > 30 s | Use async — avoid HTTP gateway timeouts |\n| Client has no streaming/progress support | Use async — poll at your own pace |\n| You need reconnect semantics (resume after disconnect) | Use async — `jobId` survives transport reconnections |\n| Short interactive workflows | Sync mode is simpler |\n\n### Tool surface\n\nAsync mode registers **five additional MCP tools** alongside the existing sync\ntool (6 tools total):\n\n| Tool | Input | Output | Description |\n|------|-------|--------|-------------|\n| `start_<workflow>` | Workflow input schema | `{ jobId: string }` | Fire the workflow; returns a `jobId` immediately |\n| `get_workflow_status` | `{ jobId: string }` | `{ state, createdAt, lastEventAt, currentTask?, progress? }` | Poll run state (`running`, `awaiting-checkpoint`, `done`, `failed`, `cancelled`) |\n| `get_workflow_result` | `{ jobId: string }` | `{ state: \"done\", output, metrics }` or `{ pending: true }` | Fetch the validated output (idempotent until TTL expires) |\n| `resume_workflow` | `{ jobId: string, approved: boolean }` | `{ resumed: boolean }` | Approve or deny a pending HITL checkpoint |\n| `cancel_workflow` | `{ jobId: string }` | `{ cancelled: boolean, priorState: string }` | Abort an in-flight run (idempotent) |\n\nThe existing synchronous tool is **not removed** — both surfaces are available.\n\n### Error codes\n\n| Code | Meaning |\n|------|---------|\n| `JOB_NOT_FOUND` | The supplied `jobId` is unknown (expired TTL or typo) |\n| `JOB_CANCELLED` | `get_workflow_result` called on a cancelled job |\n| `INVALID_RUN_STATE` | Operation not valid in the job's current state (e.g. `resume_workflow` on a non-paused job) |\n| `ASYNC_MODE_DISABLED` | A job tool was called but the server was started without `--async` |\n| `BUSY` | A second `start_*` was fired while the inflight lock is held |\n\n### TTL configuration\n\n```bash\n# Keep completed jobs for 1 hour (default: 30 min)\nagentwf mcp serve ./workflow.ts --async --job-ttl 3600000\n\n# Keep pending HITL checkpoints for 2 hours (default: 1 hour)\nagentwf mcp serve ./workflow.ts --async --checkpoint-ttl 7200000\n```\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--job-ttl <ms>` | `1800000` (30 min) | How long completed/failed/cancelled job results are retained |\n| `--checkpoint-ttl <ms>` | `3600000` (1 hour) | How long a paused HITL checkpoint waits before auto-rejecting |\n\n### Known limitations\n\n- **No persistence** — the job registry is in-memory only. Restarting the\n  server loses all job state.\n- **Single-instance** — the registry is not shared across processes. Running\n  multiple server processes will have independent job stores.\n- **Single BUSY lock** — only one `start_*` call can be in-flight at a time.\n  A second concurrent start returns `BUSY` immediately.\n\n### Example JSON-RPC exchange\n\n**1. Start the workflow**\n\n```json\n{ \"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"tools/call\",\n  \"params\": { \"name\": \"start_greet\", \"arguments\": { \"name\": \"Alice\" } } }\n```\n\nResponse:\n```json\n{ \"jsonrpc\": \"2.0\", \"id\": 1, \"result\":\n  { \"content\": [{ \"type\": \"text\",\n      \"text\": \"{\\\"jobId\\\":\\\"550e8400-e29b-41d4-a716-446655440000\\\"}\" }] } }\n```\n\n**2. Poll status**\n\n```json\n{ \"jsonrpc\": \"2.0\", \"id\": 2, \"method\": \"tools/call\",\n  \"params\": { \"name\": \"get_workflow_status\",\n              \"arguments\": { \"jobId\": \"550e8400-e29b-41d4-a716-446655440000\" } } }\n```\n\nResponse (still running):\n```json\n{ \"jsonrpc\": \"2.0\", \"id\": 2, \"result\":\n  { \"content\": [{ \"type\": \"text\",\n      \"text\": \"{\\\"state\\\":\\\"running\\\",\\\"createdAt\\\":1713312000000,\\\"lastEventAt\\\":1713312001000}\" }] } }\n```\n\n**3. Fetch result once done**\n\n```json\n{ \"jsonrpc\": \"2.0\", \"id\": 3, \"method\": \"tools/call\",\n  \"params\": { \"name\": \"get_workflow_result\",\n              \"arguments\": { \"jobId\": \"550e8400-e29b-41d4-a716-446655440000\" } } }\n```\n\n**4. Resume a HITL checkpoint**\n\n```json\n{ \"jsonrpc\": \"2.0\", \"id\": 4, \"method\": \"tools/call\",\n  \"params\": { \"name\": \"resume_workflow\",\n              \"arguments\": { \"jobId\": \"550e8400-e29b-41d4-a716-446655440000\", \"approved\": true } } }\n```\n\n**5. Cancel a running job**\n\n```json\n{ \"jsonrpc\": \"2.0\", \"id\": 5, \"method\": \"tools/call\",\n  \"params\": { \"name\": \"cancel_workflow\",\n              \"arguments\": { \"jobId\": \"550e8400-e29b-41d4-a716-446655440000\" } } }\n```\n\n## HTTP transport\n\nBy default `agentwf mcp serve` uses stdio (suitable for `claude_desktop_config.json`). For remote or team deployment, use the **Streamable HTTP transport** (MCP spec 2025-03-26).\n\n### CLI\n\n```bash\n# Loopback only — no auth required\nagentwf mcp serve ./workflow.ts --http --port 3000\n\n# Non-loopback — bearer auth is mandatory\nagentwf mcp serve ./workflow.ts --http --port 3000 \\\n  --host 0.0.0.0 --auth-bearer \"$MCP_TOKEN\"\n```\n\nFlags:\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--http` | — | Enable HTTP transport instead of stdio |\n| `--port <n>` | — | TCP port to bind (required with `--http`) |\n| `--host <addr>` | `127.0.0.1` | Bind address |\n| `--auth-bearer <token>` | — | Bearer token for auth (required for non-loopback hosts) |\n| `--trust-proxy` | `false` | Trust `X-Forwarded-For` header (see below) |\n| `--max-body-bytes <n>` | `1048576` | Maximum request body size in bytes (default: 1 MiB) |\n| `--max-sessions <n>` | `1000` | Maximum concurrent MCP sessions |\n\n### Programmatic API\n\n```ts\nimport { createMcpServer } from \"@ageflow/mcp-server\";\n\nconst server = createMcpServer({\n  workflows: [myWorkflow],\n  transport: {\n    type: \"http\",\n    port: 3000,\n    // host defaults to \"127.0.0.1\" (loopback-only)\n    auth: { type: \"bearer\", token: process.env.MCP_TOKEN! },\n    // Optional CORS for browser-based MCP clients:\n    cors: { origin: \"https://app.example.com\" },\n    // Optional in-memory rate limiter:\n    rateLimit: { windowMs: 60_000, max: 100 },\n    // Optional audit log:\n    auditLog: (event) => {\n      console.log(JSON.stringify(event));\n    },\n    // Set true ONLY when behind a trusted reverse proxy (nginx, Caddy, etc.).\n    // See \"trustProxy guidance\" below. Default: false.\n    trustProxy: false,\n    // Maximum request body bytes — default 1 MiB. Excess → 413.\n    maxBodyBytes: 1_048_576,\n    // Maximum concurrent sessions — default 1000. Excess → 429.\n    maxSessions: 1_000,\n  },\n});\n\nawait server.listen();\n// server.httpHandle?.address() → { port: 3000, host: \"127.0.0.1\" }\n```\n\n### Security model\n\n| Property | Default | Notes |\n|----------|---------|-------|\n| Bind address | `127.0.0.1` | Loopback-only. Use `0.0.0.0` for network-wide access. |\n| Auth | `none` | Only valid on loopback. Non-loopback **requires** bearer auth. |\n| CORS | disabled | Enable only if you have browser-based MCP clients. |\n| TLS | none | **This transport speaks plain HTTP.** |\n| `trustProxy` | `false` | See below. |\n| `maxBodyBytes` | `1 MiB` | Requests larger than this are rejected with 413. |\n| `maxSessions` | `1000` | Excess `initialize` requests are rejected with 429. |\n\n#### `trustProxy` guidance\n\nBy default the server determines the client IP from the TCP socket's remote address. Set `trustProxy: true` **only** when the server runs behind a reverse proxy you control (nginx, Caddy, etc.) that sets `X-Forwarded-For` to the real client IP.\n\n**Never set `trustProxy: true` on a server exposed directly to the internet.** Any client can forge the `X-Forwarded-For` header, which would let them bypass rate limiting and fake audit log entries.\n\n```\n# Safe: proxy you control sets X-Forwarded-For\nInternet → nginx (sets X-Forwarded-For) → ageflow mcp (trustProxy: true)\n\n# Unsafe: direct internet exposure\nInternet → ageflow mcp (trustProxy: true)  ← attacker can set any X-Forwarded-For\n```\n\n### TLS guidance\n\nThe HTTP transport does not handle TLS. For production deployments on non-loopback interfaces, terminate TLS with a reverse proxy:\n\n**Caddy** (automatic certificates):\n```\nmcp.example.com {\n  reverse_proxy 127.0.0.1:3000\n}\n```\n\n**nginx:**\n```nginx\nserver {\n  listen 443 ssl;\n  server_name mcp.example.com;\n  # ... TLS config ...\n  location /mcp {\n    proxy_pass http://127.0.0.1:3000;\n    proxy_set_header Host $host;\n    proxy_buffering off;   # required for SSE streaming\n  }\n}\n```\n\n### Audit log example\n\n```ts\nconst server = createMcpServer({\n  workflows: [myWorkflow],\n  transport: {\n    type: \"http\",\n    port: 3000,\n    auth: { type: \"bearer\", token: process.env.MCP_TOKEN! },\n    auditLog: (event) => {\n      // event shape: { ts, remoteIp, toolName, method, authDenied, rateLimited }\n      if (event.authDenied) {\n        securityLogger.warn(\"MCP auth failure\", { ip: event.remoteIp });\n      }\n      metricsClient.increment(\"mcp.request\", {\n        method: event.method ?? \"unknown\",\n        tool: event.toolName ?? \"none\",\n      });\n    },\n  },\n});\n```\n\n## Before you expose\n\n- Add HITL checkpoints for any destructive operations (`git push --force`, `rm -rf`, privileged Docker)\n- Validate any raw input passed to shell/SQL\n- Set `maxCostUsd` on workflows using expensive models\n","readmeFilename":"README.md"}