{"_id":"@allratestoday/mcp-server","_rev":"14-0dc3286f8fc7319f823edc1cc8b4b5bb","name":"@allratestoday/mcp-server","dist-tags":{"latest":"0.5.1"},"versions":{"0.1.0":{"name":"@allratestoday/mcp-server","version":"0.1.0","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.1.0","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"49379487dc0dcad93bc05a1f59e8aa8bc9ed1380","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":7,"integrity":"sha512-BTzT3xT8fGTIuTGMazFSdKgCqTNLKz9QvAwC3WG2tAQeuS7InsbGe8AWAuMuwTQnTtOK8vXkDNSNzRZ+N0tMBQ==","signatures":[{"sig":"MEQCIFB8HTgaDThlgKTqicdjOm64sa6TPbiPxRTX3AZVEMxuAiAHfpVHc9YfDixnDk+HSGW5dGjMNFTBd3MAl6/msnNTmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14855},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"594166dea259b935efeab96b1a60d41fea7cd3f8","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1776765708776_0.44389934686553656","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@allratestoday/mcp-server","version":"0.1.1","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.1.1","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"e553aca4ee9898560c76239b5fd806d0159922e6","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":7,"integrity":"sha512-mJGN6b0Z5XAUgSusvUoZGb81hdD3FqdTzwgCgpoTGjOHQQ8E7t8ezrUkJ+gWk/kwFSnuDZekxr1TAvz8F3WKqQ==","signatures":[{"sig":"MEUCIEMHZqPHL7OB6xqYSsi9sst7yOP9NSGePzLyVCUrNtKJAiEAi4mautrryky9yIoyAJaALDQNSGYS8IRlz3b2ziDkiOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14904},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"b684e8e9794c84b53cb41dcf3c3f2212d76b8825","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1776767993546_0.6465809443644885","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@allratestoday/mcp-server","version":"0.2.0","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.2.0","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"3f6ba73717d6b0e8cf07071887ef4dcf7d40fa22","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":7,"integrity":"sha512-TSbs2WT9FObtcUN9d8omgMI+wp75VukHn1qcKF9k8JGKa/qQTZxXUGHIRRWn3YnyfNpaHIjhYAnUjlDnOBzrdA==","signatures":[{"sig":"MEUCIQDmfXDENF7J1HIzH943MxKnXQGHwxGVfb4XDbSMGoMclAIgCJLCxRmuPyiJgXmQv/BhnWJYHjWNXmenK5f0xjoWuVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14123},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3246ef09e90a4ee4a903bccd2f76243889667d2e","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.0_1776774305951_0.02507558438624158","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@allratestoday/mcp-server","version":"0.3.0","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.3.0","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"0f6fe899599faf6f0b83ff2f7a4240d6de982db6","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.3.0.tgz","fileCount":7,"integrity":"sha512-24916I6ufhHOcudN55ST1W4CL+k+s9vuCS7XVMv5jvgVadvQfo6iG/iIgsPFpMAouUibCBiXTekoSQUVmtUtUg==","signatures":[{"sig":"MEUCIE7c8/MSSqT5P0HVQwopKX5V6Qbxhb1QgUOzqTEZjC0tAiEAwbOx3VUQs+hxeQOXHVpz2zJCO4AK6bFyO/gETILskzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15252},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"5f22438921b6f96d5e04bed41243edc172398f9d","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.0_1777197387565_0.4893706180871138","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@allratestoday/mcp-server","version":"0.3.1","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.3.1","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"792e6c54b6467416c195b772c1fc902965ae7a11","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.3.1.tgz","fileCount":7,"integrity":"sha512-P4ya3MFUbwxPxJhsACZv/AznyswQ5x4Wx7yLJHVRmEkHfWHDj0TbYx9k9DAGz7BBStpNXjuKtBwszKcnlgy35Q==","signatures":[{"sig":"MEYCIQDJVmRi4WTtRGSqNX8stlxTqbd4MaUbeum26wTykNUPfAIhAOuQGRxLuJNfUh0V2DVsdCK5ICq4+Zu60rP3mggFaSOG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15260},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"eb4ff44e54b12022e240b9bf494147a484cdd941","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.1_1777198999652_0.707630325531599","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@allratestoday/mcp-server","version":"0.3.2","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.3.2","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/realtime-exchange-rate-mcp/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"54f6a2fb68447d0625a8e2c5d52f71c4a097c3f3","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.3.2.tgz","fileCount":7,"integrity":"sha512-VPikhQsEtNhhNVNvxaJ1ONYnq+0CLBkspg3j45OkJuir/2WDDkJTmPTdcItCDnaXNBjZc/IPlTHG34WW42QL3w==","signatures":[{"sig":"MEUCIQCItW7a3di8SwNJEBi6UeEhb/kTN7VECQeKKgPuOqgG1QIgG5KLfPi+InlTIgR+UgeQXcsLJ7E+MVFAPoml3wUTfVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27445},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"c7a25b68c1a725f7f5c8d53242e190b48e3b08b1","mcpName":"io.github.cahthuranag/realtime-exchange-rate-mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/realtime-exchange-rate-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.2_1777280647050_0.8995295681203266","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@allratestoday/mcp-server","version":"0.3.3","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex"],"license":"MIT","_id":"@allratestoday/mcp-server@0.3.3","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://github.com/cahthuranag/realtime-exchange-rate-mcp","bugs":{"url":"https://github.com/cahthuranag/realtime-exchange-rate-mcp/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"1ee3b3d8a275bcc458c220eec3939fdd416a74ec","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.3.3.tgz","fileCount":7,"integrity":"sha512-eY/co2j64G8LuTwtWFOeP7PEiQhGpRfaRC0v/2/IbolI4Fvan/jWU9Tne+yrgkUKgRfaZHsC+F2RGQQAIVB8Bg==","signatures":[{"sig":"MEQCIATeeloqHbICZf8f3NHvKMFSyvcYG0IjYEe2sVxr2fKaAiAueFG1+bn72t2eFdwBmJw1FeodtgRMjwM9Ql5dnh3QUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25997},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0c3512897d9f341c5b1c27a11587828e2abf1963","mcpName":"io.github.cahthuranag/realtime-exchange-rate-mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/realtime-exchange-rate-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server that lets AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.3_1777283430891_0.5038434067350452","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@allratestoday/mcp-server","version":"0.3.4","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.3.4","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"8d706bfe8145f115d286a66330007c2a3c58e817","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.3.4.tgz","fileCount":7,"integrity":"sha512-xVFFx70qHaZri3oxgMBTEfHcOt89YG6POs6o1/JaVv/s1s+ZiItl7DqxwxbRX0C/PZMUk2lysjPXWsuQrBxi9Q==","signatures":[{"sig":"MEQCICVV0qVVuXsORS4g6B0Ho8zXsMV0fTIYZPwz+lEa784qAiBSAWfGR1lOa+F3CEir8KBv/8mJfq+XXaEyDjtF7Cxzzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27111},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"e0b17ba0c62a1b9b64dc9fb8f5be9ba5c657962d","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.4_1781036360492_0.17912426690459005","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@allratestoday/mcp-server","version":"0.4.0","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.4.0","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"734d635bc5209d0887f01951c863627c0c9e318d","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.4.0.tgz","fileCount":9,"integrity":"sha512-OCH6o/ls2EXeb1ajyuC120zOmxTi4ArcY0ADK3rbL48YehbDD/6MnVp9HNbWoyK6QfZ3dst+i5Tf5AX1A5uHFQ==","signatures":[{"sig":"MEUCIQDBvSxzkBfo5LKxfQaVOMSVJp8Qi/HydjhqomUPS/ezTAIgKTDqGYn9ltGwQq9ChitRTTZO7CZJ67jLrSyRD7XCiX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30347},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0041ce726f89d4838ae4b656a73b168ab5864c13","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","test":"node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.0_1785012212731_0.23436836448048615","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@allratestoday/mcp-server","version":"0.4.1","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.4.1","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"d67426eefbe5e56983fa8288c0caf149b22e15aa","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.4.1.tgz","fileCount":9,"integrity":"sha512-JKnkZA2orUXzQ24BOec3/yDfkuTdYNX/RPGRen5KQutmIYGWITe79OtNWZ2VCO9YwnHwqayTYFpm1b6mELVMuQ==","signatures":[{"sig":"MEQCIAkn0Z8EgpcHJp/vG0rvBL7m5RVYKki+pZGgjp4a6y/dAiBfSvz6wN+uzQn8w7GyJ1oQGm4V7OPbWy478cCKJTSygA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30321},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d87ea8e88cd419a31c4f52f28b2ff220c4d9f864","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","test":"node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.1_1785100400147_0.36029528588495463","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@allratestoday/mcp-server","version":"0.4.2","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.4.2","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"496ac03c58b7e4dcba4d02cc20f213c8be020748","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.4.2.tgz","fileCount":9,"integrity":"sha512-JHjdPB47EG+R+26xjo2Xp0XvbXjdnJNcYQw2eLN6mMpJmtND1m7Uj10+rNxJoBDikfeJpRcFi3pvu6y1qkvbig==","signatures":[{"sig":"MEUCIQCGUUQrxWQfA0QTmTjaLyX5tLDTOT0WqwrXNTdz5KxXJgIgKmaLf4cp8hVmPj+uQjgThPsEBuosYYgmbxsOTun8EzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29230},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"6aea0aaaf87b885b5bfccc4e66a47d27010ad60d","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","test":"node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.2_1786468639224_0.2357096127442373","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@allratestoday/mcp-server","version":"0.4.3","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.4.3","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"f844839a9161f563b978fe7a3ffc8eb06aec17bf","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.4.3.tgz","fileCount":9,"integrity":"sha512-CnWHAdZJspAPsCLb4WPNTUev62C+J4Vdp/sd3RkcPianGomRNjt5LC6HcLCSszEfbrSlinJAqhek17x3Ul7LLg==","signatures":[{"sig":"MEQCIG604w8Bgqx1Z0lA8EtHS/MFzCXNjK6PmkByHsWzZ6JmAiBGNQudyLYciZk0+pF3M64tp+MwL+Qmr3kE5T4q73cfGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30016},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"a52fd6369ba8ec8956975401b0dc6f506d9434fb","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","test":"node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.3_1786468904319_0.638412977740795","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@allratestoday/mcp-server","version":"0.5.0","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"license":"MIT","_id":"@allratestoday/mcp-server@0.5.0","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"homepage":"https://allratestoday.com","bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"bin":{"allratestoday-mcp":"dist/index.js"},"dist":{"shasum":"58a260b5c25a8674de37c9dfd6b53dc03ad8a00d","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.5.0.tgz","fileCount":9,"integrity":"sha512-nHh3hly72JmDQ00LEpyrHWs1jg9UqnUmbKJwbg7lcfLfwvCEeO61qXhCz4P07nqZsXGjea9qMQrVFwc492Hp7w==","signatures":[{"sig":"MEYCIQD3YhXWVgQktaZAZmuVrbdUW0mxtsWxjorzNTKPnRwiPQIhAOsiw9IuUZ7XiFFQhWj6q5WEA87xFU58HgEZXzWlWue3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35260},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"831714170b99d73b6501b0f38cb693af83fead56","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","test":"node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.0_1788081510407_0.08158480075622565","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"_id":"@allratestoday/mcp-server@0.5.1","bin":{"allratestoday-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"dist":{"shasum":"faae55bbc8f92c8d533af59dcbecbf877ee41d60","tarball":"https://registry.npmjs.org/@allratestoday/mcp-server/-/mcp-server-0.5.1.tgz","fileCount":9,"integrity":"sha512-7Om2lOxt+mNiZ2fQ7jP6n7dV2kz4P/VxL9JIUuEOP+lbv6pbDY6yfHtSPz1zvSK6EOwv8z1qhBnr8CGsweJH8A==","signatures":[{"sig":"MEYCIQDE/FasTSshWxYPDlwZsZz2h3YZE+OuR5KOXQGqDLg0NAIhAITYRT2PWAm8nKGCDnCvr9QXbC9BAWCC9RfHb9ZWltot","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCQP8kFeTDMXUFu8/q9ihMzER3ZaAdVPeT8SiEr/ZwXtQIhALgjkadhpmf/9zrQKi1j4aF6RbAOHi3APr3BVbrrbj52"}],"unpackedSize":36029},"main":"dist/index.js","name":"@allratestoday/mcp-server","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"e4b920267617dfbba1e377821d1509dd55fbff7c","license":"MIT","mcpName":"io.github.cahthuranag/mcp-server","scripts":{"dev":"tsc --watch","test":"node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"version":"0.5.1","_npmUser":{"name":"chathurangac8","email":"basnayakac8@gmail.com"},"homepage":"https://allratestoday.com","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","directories":{},"maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.5.1_1789324596795_0.0825022120607719"}}},"time":{"created":"2026-04-21T10:01:48.595Z","modified":"2026-09-13T18:36:37.115Z","0.1.0":"2026-04-21T10:01:48.907Z","0.1.1":"2026-04-21T10:39:53.705Z","0.2.0":"2026-04-21T12:25:06.086Z","0.3.0":"2026-04-26T09:56:27.707Z","0.3.1":"2026-04-26T10:23:19.776Z","0.3.2":"2026-04-27T09:04:07.201Z","0.3.3":"2026-04-27T09:50:31.051Z","0.3.4":"2026-06-09T20:19:20.878Z","0.4.0":"2026-07-25T20:43:32.875Z","0.4.1":"2026-07-26T21:13:20.276Z","0.4.2":"2026-08-11T17:17:19.384Z","0.4.3":"2026-08-11T17:21:44.474Z","0.5.0":"2026-08-30T09:18:30.528Z","0.5.1":"2026-09-13T18:36:36.874Z"},"bugs":{"url":"https://github.com/cahthuranag/mcp-server/issues"},"license":"MIT","homepage":"https://allratestoday.com","keywords":["mcp","model-context-protocol","claude","cursor","currency","exchange-rate","forex","allratestoday"],"repository":{"url":"git+https://github.com/cahthuranag/mcp-server.git","type":"git"},"description":"MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.","maintainers":[{"name":"chathurangac8","email":"basnayakac8@gmail.com"}],"readme":"# AllRatesToday MCP Server — @allratestoday/mcp-server\n\n[![npm version](https://img.shields.io/npm/v/@allratestoday/mcp-server.svg)](https://www.npmjs.com/package/@allratestoday/mcp-server)\n[![npm downloads](https://img.shields.io/npm/dm/@allratestoday/mcp-server.svg)](https://www.npmjs.com/package/@allratestoday/mcp-server)\n[![license](https://img.shields.io/npm/l/@allratestoday/mcp-server.svg)](./LICENSE)\n[![MCP](https://img.shields.io/badge/Model%20Context%20Protocol-1.x-blue.svg)](https://modelcontextprotocol.io)\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6.svg)](https://www.typescriptlang.org/)\n\nEnglish | [简体中文](./README-zh-CN.md)\n\n**Give your AI assistant a live window into the foreign-exchange market. A Model Context Protocol server that lets Claude Code, Cursor, Claude Desktop, Windsurf, and any MCP-compatible client fetch real-time currency rates, historical series, and multi-currency lookups from the [AllRatesToday API](https://allratestoday.com).**\n\nAfter installation, your assistant can answer questions like:\n\n- *\"What's the current USD to EUR rate?\"*\n- *\"Show me how GBP/JPY moved over the last 30 days.\"*\n- *\"Convert 250 USD into CAD at a real rate.\"*\n- *\"Compare USD against EUR, GBP, and JPY simultaneously.\"*\n\n## 🚀 Why this server?\n\n- 📡 **Live mid-market rates** — 150+ ISO 4217 currencies, refreshed every ~60 seconds from institutional interbank data\n- 📈 **Historical series built in** — `1d` / `7d` / `30d` / `1y` windows with sensible granularity per period\n- 🧰 **Four focused tools** — `get_exchange_rate`, `get_historical_rates`, `get_rates_authenticated`, `list_currencies`; small surface, easy for the model to use correctly\n- 🔌 **Works everywhere MCP does** — stdio transport, MCP 1.x; Claude Code, Cursor, Claude Desktop, Windsurf, or any generic host\n- 🔓 **Works with no API key** — installs and answers out of the box from the open ECB reference table; a free key unlocks real-time rates for 160+ currencies\n- 🛡️ **Honest about what it returned** — every keyless answer says which rate it is and when it was published; API errors map to clear, actionable messages\n- 🔒 **Nothing leaks** — only the request parameters and your API key ever reach allratestoday.com; never conversation context\n\n## ⚖️ Mid-market vs official central-bank rates\n\nEverything this server returns is a **mid-market rate**: the live interbank midpoint, refreshed every ~60 seconds — the right number for price display, conversion, and anything that should track the market. It is *not* the official rate a tax authority or auditor may require. For those, AllRatesToday also serves **published central-bank and tax-authority rates** (100+ sources — ECB, Fed, HMRC, US Treasury, …) that are fixed once published and carry the institution's own publication date — via the [central bank REST API](https://allratestoday.com/docs/#central-bank) and [per-bank npm SDKs](https://allratestoday.com/central-bank-rates-api/). The two can diverge by several percent, so pick by use case, not convenience.\n\n## 🔓 Keyless mode — what works with no setup\n\nInstall it with no configuration at all and it starts, connects, and answers:\n\n| Tool | Keyless | What you get |\n|---|---|---|\n| `get_exchange_rate` | ✅ | Official **ECB daily reference rate**, ~30 major currencies. The response carries `rate_date` and a note saying so, so the assistant never passes it off as a live quote. |\n| `list_currencies` | ✅ | All 160+ supported ISO 4217 codes. |\n| `get_historical_rates` | 🔑 | Returns one sentence explaining how to get a free key. |\n| `get_rates_authenticated` | 🔑 | Same. |\n\nThe keyless path reads the open, edge-cached `/api/open/central-bank/ecb`\nendpoint — no upstream cost, no rate limit to trip over, nothing to sign up for.\n\n## 🔑 Get your API key (free)\n\nA key unlocks **real-time mid-market rates across 160+ currencies**, historical\nseries, and multi-target / point-in-time lookups. The free tier is enough for\ndevelopment and personal use — **no credit card required**.\n\n1. Register at [allratestoday.com/register](https://allratestoday.com/register) — 30 seconds\n2. Verify your email\n3. Copy your key from the dashboard (format: `art_live_xxxxx`)\n4. Use it as `ALLRATES_API_KEY` in the configs below\n\nWithout one the server prints a short summary of keyless mode on stderr and\nkeeps running — it never exits, because an MCP server that exits breaks the\nhost client's whole configuration.\n\n## 🧩 Easiest install: the Claude Code plugin\n\nIf you use Claude Code, install the plugin instead of configuring this server by\nhand — it bundles both AllRatesToday MCP servers, two skills, and five slash\ncommands (`/rate`, `/convert`, `/official-rate`, `/fx-history`,\n`/add-currency-support`):\n\n```\n/plugin marketplace add AllRates-Today/claude-code-plugin\n/plugin install allratestoday@allratestoday\n```\n\nEverything below still applies for other MCP clients.\n\n## ☁️ Hosted endpoint — nothing to install\n\nThe same tools also run as a hosted **Streamable HTTP** MCP server (together with the tools of the sibling AllRatesToday server, nine in total). Paste the URL into any client that supports remote MCP — Claude.ai and Claude Desktop connectors, ChatGPT, Cursor, VS Code, Codex, Gemini CLI:\n\n```\nhttps://allratestoday.com/api/mcp\n```\n\n```bash\nclaude mcp add --transport http allratestoday https://allratestoday.com/api/mcp\n```\n\nWorks keyless. With a key, send `Authorization: Bearer art_live_…` or, where the client only takes a URL, connect to `https://allratestoday.com/api/mcp?api_key=art_live_…`. Registry name: `com.allratestoday/mcp`. One-click Cursor / VS Code buttons: https://allratestoday.com/mcp/#hosted\n\n## 📦 Installation\n\nThe simplest install is **zero-install via `npx`**, which is what every config below uses:\n\n```bash\n# Run without installing (recommended)\nnpx -y @allratestoday/mcp-server\n```\n\n```bash\n# Or install globally\nnpm install -g @allratestoday/mcp-server\nallratestoday-mcp\n```\n\nBoth commands launch the stdio MCP server and wait for a client to connect — they're not meant to be run interactively from your shell; your MCP client launches them as a subprocess.\n\n## 🏁 Quick setup per client\n\nEach client reads MCP servers from a different config file. Pick yours below.\n\n### Claude Code\n\nThe fastest path uses the built-in CLI:\n\n```bash\nclaude mcp add allratestoday -- npx -y @allratestoday/mcp-server\nclaude mcp env allratestoday ALLRATES_API_KEY=art_live_xxxxx\n```\n\nRestart Claude Code. Verify by asking it: *\"What's the current USD to EUR rate?\"*\n\n### Cursor\n\nEdit `~/.cursor/mcp.json` (or `.cursor/mcp.json` inside your project for project-scoped servers):\n\n```json\n{\n  \"mcpServers\": {\n    \"allratestoday\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@allratestoday/mcp-server\"],\n      \"env\": {\n        \"ALLRATES_API_KEY\": \"art_live_xxxxx\"\n      }\n    }\n  }\n}\n```\n\nRestart Cursor. The four tools should appear in the MCP tool picker.\n\n### Claude Desktop\n\nEdit the config file (path depends on OS):\n\n| OS | Path |\n|---|---|\n| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| Windows | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n| Linux | `~/.config/Claude/claude_desktop_config.json` |\n\n```json\n{\n  \"mcpServers\": {\n    \"allratestoday\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@allratestoday/mcp-server\"],\n      \"env\": {\n        \"ALLRATES_API_KEY\": \"art_live_xxxxx\"\n      }\n    }\n  }\n}\n```\n\n**Fully quit and reopen Claude Desktop** (Cmd+Q on macOS, right-click tray icon → Exit on Windows). Closing the window alone keeps the old config loaded.\n\n### Windsurf\n\nEdit `~/.codeium/windsurf/mcp_config.json` with the same `mcpServers` block as above, then restart Windsurf.\n\n### Generic stdio MCP client\n\nAny MCP host that supports stdio transport works. The launch command is:\n\n```\nnpx -y @allratestoday/mcp-server\n```\n\n…with the environment variable `ALLRATES_API_KEY` set. The protocol version is MCP 1.x.\n\n## ✅ Verify it works\n\nAfter configuring your client, test in this order:\n\n1. **Server starts** — open the client. A red dot or \"failed to connect\" means the API key is missing or wrong (see Troubleshooting below).\n2. **Tools are listed** — most clients have a \"tools\" or \"MCP\" panel showing the four tools.\n3. **A live call returns a number** — ask: *\"What's the current USD to EUR rate?\"* The assistant should call `get_exchange_rate(source: \"USD\", target: \"EUR\")` and reply with a real rate. If it fabricates a number without a tool call, the server isn't connected.\n\n## 📚 Tools reference\n\n- [`get_exchange_rate`](#get_exchange_rate) — current rate for one pair\n- [`get_historical_rates`](#get_historical_rates) — time series over a preset period\n- [`get_rates_authenticated`](#get_rates_authenticated) — multiple targets in one call, optional point-in-time\n- [`list_currencies`](#list_currencies) — all supported currency codes, names, symbols\n\nAll four tools require `ALLRATES_API_KEY`.\n\n---\n\n### `get_exchange_rate`\n\nCurrent mid-market rate between two currencies.\n\n**Input**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `source` | string | yes | 3-letter ISO 4217 code, e.g. `USD` |\n| `target` | string | yes | 3-letter ISO 4217 code, e.g. `EUR` |\n\n**Example call**\n\n```json\n{ \"source\": \"USD\", \"target\": \"EUR\" }\n```\n\n**Response:**\n\n```json\n{ \"rate\": 0.92145, \"source\": \"wise\" }\n```\n\n### `get_historical_rates`\n\nTime-series data points for a currency pair over a fixed period.\n\n**Input**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `source` | string | yes | Source currency code |\n| `target` | string | yes | Target currency code |\n| `period` | string | no (default `7d`) | One of `1d`, `7d`, `30d`, `1y` |\n\n**Granularity by period**\n\n| `period` | Data points |\n|---|---|\n| `1d` | Hourly (24 points) |\n| `7d` | Daily (7 points) |\n| `30d` | Daily (30 points) |\n| `1y` | Weekly (52 points) |\n\n**Example call**\n\n```json\n{ \"source\": \"USD\", \"target\": \"INR\", \"period\": \"30d\" }\n```\n\n**Response (truncated):**\n\n```json\n{\n  \"source\": \"USD\",\n  \"target\": \"INR\",\n  \"period\": \"30d\",\n  \"data\": [\n    { \"date\": \"2026-03-27T00:00:00Z\", \"rate\": 83.42, \"timestamp\": 1743033600000 },\n    { \"date\": \"2026-03-28T00:00:00Z\", \"rate\": 83.51, \"timestamp\": 1743120000000 },\n    \"...\"\n  ]\n}\n```\n\n### `get_rates_authenticated`\n\nMultiple targets in one call, with optional historical timestamp or grouping window.\n\n**Input**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `source` | string | yes | Source currency code |\n| `target` | string | yes | One or more codes, comma-separated (`EUR,GBP,JPY`) |\n| `time` | string (ISO 8601) | no | Historical point in time |\n| `group` | string | no | One of `hour`, `day`, `week`, `month` |\n\n**Example call**\n\n```json\n{ \"source\": \"USD\", \"target\": \"EUR,GBP,JPY\" }\n```\n\n**Response:**\n\n```json\n[\n  { \"rate\": 0.9214, \"source\": \"USD\", \"target\": \"EUR\", \"time\": \"2026-04-26T11:00:00Z\" },\n  { \"rate\": 0.7891, \"source\": \"USD\", \"target\": \"GBP\", \"time\": \"2026-04-26T11:00:00Z\" },\n  { \"rate\": 151.34, \"source\": \"USD\", \"target\": \"JPY\", \"time\": \"2026-04-26T11:00:00Z\" }\n]\n```\n\n### `list_currencies`\n\nAll supported currencies with codes, names, and symbols. Cached upstream for 24 hours — cheap to call for validating user input before the other tools.\n\n**Input** — none.\n\n**Response (truncated):**\n\n```json\n{\n  \"currencies\": [\n    { \"code\": \"USD\", \"name\": \"US Dollar\", \"symbol\": \"$\" },\n    { \"code\": \"EUR\", \"name\": \"Euro\", \"symbol\": \"€\" },\n    { \"code\": \"GBP\", \"name\": \"British Pound\", \"symbol\": \"£\" },\n    \"...\"\n  ],\n  \"count\": 162\n}\n```\n\n---\n\n## ⚙️ Environment variables\n\n| Variable | Default | Required | Purpose |\n|---|---|---|---|\n| `ALLRATES_API_KEY` | — | no | Your API key. Unset ⇒ keyless mode (see above); set ⇒ real-time rates and the historical tools. |\n| `ALLRATES_BASE_URL` | `https://allratestoday.com/api` | no | Override for self-hosted or staging deployments. |\n\nSet these in your MCP client's config (in the `env` block) — not in your shell — because MCP servers are launched as subprocesses with isolated environments.\n\n## 💳 Plans\n\nA free tier and paid plans are available — see [allratestoday.com/pricing](https://allratestoday.com/pricing) for current quotas. All plans include the same currency coverage and historical depth; only the request quotas differ.\n\n## 🛠️ Troubleshooting\n\n| Symptom | Likely cause | Fix |\n|---|---|---|\n| Client shows \"MCP server failed to start\" or red dot | Not a missing key — 0.5.0+ starts fine without one. Usually `npx` cannot reach the registry, or Node is older than 18 | Run `npx -y @allratestoday/mcp-server` in a shell and read stderr |\n| Rates look like yesterday's, response mentions \"keyless mode\" | No key set, so answers come from the ECB daily reference table | Set `ALLRATES_API_KEY` for real-time mid-market rates |\n| Every call returns \"Invalid AllRatesToday API key\" | Key is malformed (missing prefix, truncated, or revoked) | Copy a fresh key from the dashboard |\n| Tools return \"AllRatesToday API quota exceeded\" | Monthly limit hit | Wait until next month or upgrade plan |\n| Historical tool returns \"Bad request\" | Invalid period or unknown currency code | Period must be `1d`/`7d`/`30d`/`1y`; codes must be 3 letters |\n| Server starts but tools never appear | Client didn't reload after config change | Fully quit (not just close) and reopen the client |\n| `npx` runs but hangs forever | The server is waiting for an MCP client to connect — normal when run from a shell | Let your MCP client launch it |\n\nTo inspect what the server is doing, run it manually with the key set:\n\n```bash\nALLRATES_API_KEY=art_live_xxxxx npx -y @allratestoday/mcp-server\n```\n\nNo output means healthy (stdio is reserved for the MCP protocol); errors print to stderr.\n\n## 🛡️ Error reference\n\nThe server maps API errors to clear, actionable messages the assistant can relay to the user:\n\n| HTTP status | Meaning | Tool error message |\n|---|---|---|\n| 200 | Success | (rate returned) |\n| 400 | Bad request — usually unknown currency code | `Bad request — possibly an unknown currency code` |\n| 401 | Invalid or missing API key | `Invalid AllRatesToday API key` |\n| 429 | Quota exceeded | `AllRatesToday API quota exceeded` |\n| 5xx | Server-side issue at allratestoday.com | `HTTP 5xx — <upstream message>` |\n\n## ❓ FAQ\n\n**Is the free plan really enough for normal use?**\nYes for personal/dev use. Heavy interactive use, multiple chat sessions per day, or production should consider the paid tiers.\n\n**Do you store my conversation or query data?**\nNo. Only your API key and the request parameters (source, target, period, time) are sent to allratestoday.com — never the LLM's conversation context.\n\n**What happens to my API key?**\nIt's only sent as a `Bearer` token in the `Authorization` header on requests to the AllRatesToday API. It's never logged or transmitted elsewhere.\n\n**Why is my first call slow?**\nCold-start of `npx` (first run downloads the package) plus the initial cache miss. Subsequent calls are typically <200ms.\n\n**Can I run this without npm/Node?**\nNot currently — Node ≥18 is required. If a standalone binary matters to you, open an issue.\n\n**Is there a self-hosted option?**\nSet `ALLRATES_BASE_URL` to your own AllRatesToday instance. Contact support@allratestoday.com for self-hosted licensing.\n\n**Does this work with ChatGPT?**\nMCP works with any MCP-compatible client. ChatGPT Desktop has experimental MCP support; check OpenAI's docs for current status.\n\n## 👩‍💻 Development\n\n```bash\ngit clone https://github.com/cahthuranag/mcp-server.git\ncd mcp-server\nnpm install\nnpm run build\nALLRATES_API_KEY=art_live_xxxxx node dist/index.js\n```\n\nThe server runs on stdio and waits for an MCP client to connect; Ctrl+C to exit. `npm run dev` watches and rebuilds. To test against a local AllRatesToday instance:\n\n```bash\nALLRATES_BASE_URL=http://localhost:8080/api ALLRATES_API_KEY=test_key node dist/index.js\n```\n\n**Project structure**\n\n```\nsrc/\n├── index.ts      # MCP server, tool registration, request handlers\n└── client.ts     # HTTP client for AllRatesToday API + error mapping\ndist/             # Compiled JS (gitignored)\nserver.json       # MCP registry manifest\n```\n\n**Contributing** — issues and PRs welcome at [github.com/cahthuranag/mcp-server](https://github.com/cahthuranag/mcp-server). Before opening a PR: `npm run build` must succeed, test against a real API key, and update the tool descriptions in `src/index.ts` plus this README's tools reference if you change tool behavior.\n\n## 📝 Changelog\n\nSee [GitHub Releases](https://github.com/cahthuranag/mcp-server/releases) for the full list. Recent highlights:\n\n- **0.5.0** — Keyless mode: the server starts and answers without an API key (`get_exchange_rate` via the open ECB reference table, `list_currencies` unchanged); metered tools return actionable sign-up guidance instead of the process exiting\n- **0.4.x** — README overhaul; registry metadata updates\n- **0.3.x** — API key required for all tools; fail-fast at startup with clear error\n- **0.2.x** — Removed news tool, required auth on `get_historical_rates`\n- **0.1.x** — Initial release with 5 tools\n\n## 🔗 Links\n\n- [API documentation](https://allratestoday.com/docs/) · [Interactive reference](https://allratestoday.com/api-reference/)\n- [Register (free)](https://allratestoday.com/register) · [Pricing](https://allratestoday.com/pricing)\n- [MCP protocol docs](https://modelcontextprotocol.io)\n- [GitHub](https://github.com/cahthuranag/mcp-server) · [Bug reports](https://github.com/cahthuranag/mcp-server/issues)\n- Support: [support@allratestoday.com](mailto:support@allratestoday.com)\n\n## 📜 License\n\nMIT — see [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}