{"_id":"@arcote.tech/arc-mcp-stdio","_rev":"6-dd0c359ca3a530b7f8b64a749a797f01","name":"@arcote.tech/arc-mcp-stdio","dist-tags":{"latest":"0.8.25"},"versions":{"0.8.20":{"name":"@arcote.tech/arc-mcp-stdio","version":"0.8.20","_id":"@arcote.tech/arc-mcp-stdio@0.8.20","maintainers":[{"name":"arcote.tech","email":"hello@arcote.tech"}],"dist":{"shasum":"300785d32609006cb4d3d5c5487815112cab4cd6","tarball":"https://registry.npmjs.org/@arcote.tech/arc-mcp-stdio/-/arc-mcp-stdio-0.8.20.tgz","fileCount":7,"integrity":"sha512-MKKKXAoLG0KTI9F72w22Q2pd5CXzkVP8Uh7wET+Xaxlaze1ig+6ZLaj+97rXwRIQ1fJ2dwoz2o6K84MGXU6N+w==","signatures":[{"sig":"MEUCIQCNDaHxdTeWPYHsxXgZYfnjOc0yUARqfFSdGIqEeHNR4QIgCR+HCqRVBkY8sDNQR6i2wn3qsxTAaPXalxY668mnTyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21465},"main":"./src/index.ts","type":"module","types":"./src/index.ts","gitHead":"b3b6cb072355d6479b010b5ebfcae69144f13716","private":false,"scripts":{"test":"bun test","type-check":"tsc --noEmit"},"_npmUser":{"name":"arcote.tech","email":"hello@arcote.tech"},"_npmVersion":"10.9.3","description":"Transport stdio dla serwerów MCP Arc — most między klientem AI (stdio) a lokalnym serwerem aplikacji (HTTP)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0","@arcote.tech/arc":"^0.8.20"},"_npmOperationalInternal":{"tmp":"tmp/arc-mcp-stdio_0.8.20_1785932093042_0.6301537381470119","host":"s3://npm-registry-packages-npm-production"}},"0.8.21":{"name":"@arcote.tech/arc-mcp-stdio","version":"0.8.21","_id":"@arcote.tech/arc-mcp-stdio@0.8.21","maintainers":[{"name":"arcote.tech","email":"hello@arcote.tech"}],"dist":{"shasum":"85e76fca15055bb33de359f3ea4ba303ca38e257","tarball":"https://registry.npmjs.org/@arcote.tech/arc-mcp-stdio/-/arc-mcp-stdio-0.8.21.tgz","fileCount":7,"integrity":"sha512-T78anyLnf8/SHIyXMfOjf2KQOShNooPMyY/GQA8UOp3BCfFN8fnhHT5ytn1e0nzQkR8cfrdq1cAIiLoh26NK7g==","signatures":[{"sig":"MEQCIDeUKjjOxqCoHUh6ipyimPgdsvuUXWD7pW4QOkqsiVioAiATD00FaviJgm4zY5lgGioR52ATTy/5Knrym9Huk9Bi1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21465},"main":"./src/index.ts","type":"module","types":"./src/index.ts","gitHead":"06a4001d8a3c2d63e9c939f68783fd397a810e75","private":false,"scripts":{"test":"bun test","type-check":"tsc --noEmit"},"_npmUser":{"name":"arcote.tech","email":"hello@arcote.tech"},"_npmVersion":"10.9.3","description":"Transport stdio dla serwerów MCP Arc — most między klientem AI (stdio) a lokalnym serwerem aplikacji (HTTP)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0","@arcote.tech/arc":"^0.8.21"},"_npmOperationalInternal":{"tmp":"tmp/arc-mcp-stdio_0.8.21_1786007154062_0.49689110882296084","host":"s3://npm-registry-packages-npm-production"}},"0.8.22":{"name":"@arcote.tech/arc-mcp-stdio","version":"0.8.22","_id":"@arcote.tech/arc-mcp-stdio@0.8.22","maintainers":[{"name":"arcote.tech","email":"hello@arcote.tech"}],"dist":{"shasum":"ac97514be1873affc92912ed06b18bd9584cd202","tarball":"https://registry.npmjs.org/@arcote.tech/arc-mcp-stdio/-/arc-mcp-stdio-0.8.22.tgz","fileCount":7,"integrity":"sha512-U9pK8hRjC/JZDk9Gb+6MPy6za0EzMK9awfSDAklIXPuFH/Xjpue8eOEWN5GCP+PPqLsFZ1VXuVmOUley8PlvzQ==","signatures":[{"sig":"MEUCIQCevQBkVMJaRzRJh3GCG3L1pEefSur+RERkJDv7P7ZCqAIgEk/gU+YPzAYpRM94vXmU3/huty1H/UPtfAY2S5fkj9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21465},"main":"./src/index.ts","type":"module","types":"./src/index.ts","gitHead":"d0923078da5910f11e5321b34a457bc2e5566896","private":false,"scripts":{"test":"bun test","type-check":"tsc --noEmit"},"_npmUser":{"name":"arcote.tech","email":"hello@arcote.tech"},"_npmVersion":"10.9.3","description":"Transport stdio dla serwerów MCP Arc — most między klientem AI (stdio) a lokalnym serwerem aplikacji (HTTP)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0","@arcote.tech/arc":"^0.8.22"},"_npmOperationalInternal":{"tmp":"tmp/arc-mcp-stdio_0.8.22_1786012347499_0.9192435421676892","host":"s3://npm-registry-packages-npm-production"}},"0.8.23":{"name":"@arcote.tech/arc-mcp-stdio","version":"0.8.23","_id":"@arcote.tech/arc-mcp-stdio@0.8.23","maintainers":[{"name":"arcote.tech","email":"hello@arcote.tech"}],"dist":{"shasum":"3f3d7e01189b8b32887b4823fbcd59917a5ca795","tarball":"https://registry.npmjs.org/@arcote.tech/arc-mcp-stdio/-/arc-mcp-stdio-0.8.23.tgz","fileCount":7,"integrity":"sha512-MvrjexrAonGnZ/AdKSTPJ9/dW+58EJ9sHwY4MAMr6BbMwpjHJLvc1AEs7SfxrA+uV+3wKRLtLlWiwagBEOVIQg==","signatures":[{"sig":"MEYCIQCaP8sSqGbTjTWbH+FKptK88j/H5Qp20mw75UUUMX1yvwIhANs2E8LaqaGhdk0DVW6ug0597wUh/WumDgOY094SUNMt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21465},"main":"./src/index.ts","type":"module","types":"./src/index.ts","gitHead":"09c44e44996bd7669789f8fff635629a1e57ba57","private":false,"scripts":{"test":"bun test","type-check":"tsc --noEmit"},"_npmUser":{"name":"arcote.tech","email":"hello@arcote.tech"},"_npmVersion":"10.9.3","description":"Transport stdio dla serwerów MCP Arc — most między klientem AI (stdio) a lokalnym serwerem aplikacji (HTTP)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0","@arcote.tech/arc":"^0.8.23"},"_npmOperationalInternal":{"tmp":"tmp/arc-mcp-stdio_0.8.23_1786024576522_0.9538097535743939","host":"s3://npm-registry-packages-npm-production"}},"0.8.24":{"name":"@arcote.tech/arc-mcp-stdio","version":"0.8.24","_id":"@arcote.tech/arc-mcp-stdio@0.8.24","maintainers":[{"name":"arcote.tech","email":"hello@arcote.tech"}],"dist":{"shasum":"fa381d9cd5375b400b5efd73dc6305b14817d4a6","tarball":"https://registry.npmjs.org/@arcote.tech/arc-mcp-stdio/-/arc-mcp-stdio-0.8.24.tgz","fileCount":7,"integrity":"sha512-FU9IL8de1quKVEwFLj2bHeJ/3X5LMa1sPGhfkp4OG9Lq2ASq55NObxFuXLOKffGpAbngC1HTbu7/snK+4eqzkw==","signatures":[{"sig":"MEQCIBdAt/vRQooihav6qwTOtLBS+bMrFmdyi1ryCxuO9FBMAiBG/eGKdVVyl4h7kYq/E0CfbKOF0Ew3vgdY3AhLoi05eQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21465},"main":"./src/index.ts","type":"module","types":"./src/index.ts","gitHead":"4dec85ae6479b03b568726efc1d6139c7b08d37c","private":false,"scripts":{"test":"bun test","type-check":"tsc --noEmit"},"_npmUser":{"name":"arcote.tech","email":"hello@arcote.tech"},"_npmVersion":"10.9.3","description":"Transport stdio dla serwerów MCP Arc — most między klientem AI (stdio) a lokalnym serwerem aplikacji (HTTP)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0","@arcote.tech/arc":"^0.8.24"},"_npmOperationalInternal":{"tmp":"tmp/arc-mcp-stdio_0.8.24_1786284809990_0.05293996701354842","host":"s3://npm-registry-packages-npm-production"}},"0.8.25":{"name":"@arcote.tech/arc-mcp-stdio","type":"module","version":"0.8.25","private":false,"description":"Transport stdio dla serwerów MCP Arc — most między klientem AI (stdio) a lokalnym serwerem aplikacji (HTTP)","main":"./src/index.ts","types":"./src/index.ts","scripts":{"type-check":"tsc --noEmit","test":"bun test"},"peerDependencies":{"@arcote.tech/arc":"^0.8.25","typescript":"^5.0.0"},"devDependencies":{"@types/bun":"latest"},"_id":"@arcote.tech/arc-mcp-stdio@0.8.25","gitHead":"7374320e23fa90785bbd6f897d933ce8e12fe7cd","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-9R74KrLyqMGSd6aAxcxuaiF2V/Zg2c98D7E0CWv9u4921EUMM5+zN8t4L3T126Usf5Pk02/JdeXRnSI+pbtUww==","shasum":"062a04b9c5928d4d1613ba6935b6d503ffcbc01e","tarball":"https://registry.npmjs.org/@arcote.tech/arc-mcp-stdio/-/arc-mcp-stdio-0.8.25.tgz","fileCount":7,"unpackedSize":21465,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC0IgoveuEB4T2p9dE5NoQz3sdtfzxoR+wn3SV+/YSfnAiBY4IEhjBBQGTyolEX7XouHFOQjoMhOXBexe+alLIsBiw=="}]},"_npmUser":{"name":"arcote.tech","email":"hello@arcote.tech"},"directories":{},"maintainers":[{"name":"arcote.tech","email":"hello@arcote.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/arc-mcp-stdio_0.8.25_1786492530100_0.5917324164440403"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-05T12:14:52.908Z","modified":"2026-08-11T23:55:30.411Z","0.8.20":"2026-08-05T12:14:53.187Z","0.8.21":"2026-08-06T09:05:54.201Z","0.8.22":"2026-08-06T10:32:27.665Z","0.8.23":"2026-08-06T13:56:16.666Z","0.8.24":"2026-08-09T14:13:30.136Z","0.8.25":"2026-08-11T23:55:30.248Z"},"description":"Transport stdio dla serwerów MCP Arc — most między klientem AI (stdio) a lokalnym serwerem aplikacji (HTTP)","maintainers":[{"name":"arcote.tech","email":"hello@arcote.tech"}],"readme":"# @arcote.tech/arc-mcp-stdio\n\nTransport **stdio** dla serwerów MCP aplikacji desktopowych Arc.\n\n## Problem\n\nKlienci AI (Claude Desktop) uruchamiają serwery MCP jako proces i rozmawiają\nz nimi po stdin/stdout. Lokalny serwer HTTP im nie wystarcza — konektory w UI\nwymagają publicznego `https`. Typowe obejście, `npx mcp-remote <url>`, wymaga\nzainstalowanego Node.js, czyli stawia barierę przed użytkownikiem, który chciał\ntylko podłączyć narzędzie.\n\n## Rozwiązanie\n\nKlient uruchamia **binarkę aplikacji**, którą użytkownik już ma. Most czyta\nJSON-RPC ze stdin i przekazuje go pod adres działającej instancji:\n\n```\nKlient AI ──stdio──► app --mcp-stdio ──HTTP──► działająca aplikacja\n```\n\nMost jest **klientem** aplikacji, nie drugim serwerem: nie otwiera bazy i nie\nładuje stanu. Dzięki temu dziennik wywołań w aplikacji widzi każde pytanie\nmodelu, a lokalna baza ma jednego pisarza.\n\n## Użycie\n\n```ts\nimport { mcpStdio } from \"@arcote.tech/arc-mcp-stdio\";\n\nexport const myStdio = mcpStdio({\n  server: myMcpServer,                    // referencja, nie napis — ścieżka z fullPath\n  token: async (baseUrl) => {             // aplikacja wie, jak zdobyć swój token\n    const res = await fetch(`${baseUrl}/route/auth`, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify({ k: LOCAL_SECRET }),\n    });\n    return res.ok ? (await res.json()).token : null;\n  },\n});\n\nexport const context = defineContext([myMcpServer, myStdio, /* … */]);\n```\n\nResztą zajmuje się runtime `arc app`: rozpoznaje flagę `--mcp-stdio`, znajduje\nelement w kontekście i podaje mu adres serwera oraz sposób podniesienia\naplikacji, gdy ta nie działa.\n\n## Podział odpowiedzialności\n\n| Warstwa | Odpowiada za |\n|---|---|\n| ten pakiet | protokół po liniach, przekazanie do HTTP, mapowanie błędów |\n| `arc-cli` (`arc app`) | flaga procesu, port, autostart powłoki, health-check |\n| aplikacja | deklaracja elementu i sposób zdobycia tokenu |\n\nPakiet nie wie nic o Tauri ani o kształcie uwierzytelniania konkretnej aplikacji.\n\n## Zachowanie brzegowe\n\n- **Notyfikacje** (wiadomości bez `id`) idą do serwera, ale nie generują odpowiedzi.\n- **Błąd transportu** wraca jako JSON-RPC `error`, nigdy jako cisza — milczenie\n  zawiesiłoby klienta w oczekiwaniu.\n- **401** → jedno odświeżenie tokenu i ponowienie (klient AI nie ponawia sam).\n- **Brak połączenia** → `ensureRunning()`, potem jedna ponowna próba.\n- Wejście czytamy przez `getReader()`, bo `ReadableStream` w binarce\n  `bun build --compile` nie ma `Symbol.asyncIterator` (w zwykłym procesie Buna ma —\n  ta różnica potrafi przejść testy i wywrócić wydanie).\n\n## Testy\n\n```bash\nbun test\n```\n","readmeFilename":"README.md"}