{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.1.1","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.1","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.1","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-06-05T11:58:58.088118Z","publishedAt":"2026-06-05T11:58:58.088118Z","updatedAt":"2026-06-05T11:58:58.088118Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.1.2","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.2","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.2","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-06-06T22:04:45.345971Z","publishedAt":"2026-06-06T22:04:45.345971Z","updatedAt":"2026-06-06T22:04:45.345971Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.1.3","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.3","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.3","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-06-07T06:32:03.272198Z","publishedAt":"2026-06-07T06:32:03.272198Z","updatedAt":"2026-06-07T06:32:03.272198Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.1.4","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.4","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.4","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-06-12T07:37:35.537313Z","publishedAt":"2026-06-12T07:37:35.537313Z","updatedAt":"2026-06-12T07:37:35.537313Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.1.5","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.5","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.1.5","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-06-20T11:34:06.786015Z","publishedAt":"2026-06-20T11:34:06.786015Z","updatedAt":"2026-06-20T11:34:06.786015Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.2.0","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.2.0","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.2.0","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-31T18:07:31.909923Z","publishedAt":"2026-07-31T18:07:31.909923Z","updatedAt":"2026-07-31T18:07:31.909923Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.2.1","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.2.1","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.2.1","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-31T18:20:48.730969Z","publishedAt":"2026-07-31T18:20:48.730969Z","updatedAt":"2026-07-31T18:20:48.730969Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.3.0","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.3.0","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.3.0","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-25T05:42:21.818476Z","publishedAt":"2026-08-25T05:42:21.818476Z","updatedAt":"2026-08-25T05:42:21.818476Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.3.1","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.3.1","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.3.1","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-25T05:49:23.399958Z","publishedAt":"2026-08-25T05:49:23.399958Z","updatedAt":"2026-08-25T05:49:23.399958Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.3.2","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.3.2","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.3.2","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-12T21:04:48.918715Z","publishedAt":"2026-09-12T21:04:48.918715Z","updatedAt":"2026-09-12T21:04:48.918715Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.4.0","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.4.0","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.4.0","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-12T21:40:41.946321Z","publishedAt":"2026-09-12T21:40:41.946321Z","updatedAt":"2026-09-12T21:40:41.946321Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/exchange-rates-mcp-server","description":"Convert currencies, get FX rates, and query historical ECB exchange rate data.","repository":{"url":"https://github.com/cyanheads/exchange-rates-mcp-server","source":"github"},"version":"0.4.1","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.4.1","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/exchange-rates-mcp-server","version":"0.4.1","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"Frankfurter API base URL. Override for local testing or self-hosted instances.","format":"string","default":"https://api.frankfurter.dev/v1","name":"FRANKFURTER_BASE_URL"},{"description":"Day range above which fx_get_timeseries spills results to DataCanvas for SQL analytics, when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb). Longer ranges return inline otherwise.","format":"string","default":"90","name":"FX_TIMESERIES_CANVAS_THRESHOLD_DAYS"},{"description":"Enable fx_dataframe_drop, which permanently removes one staged table or view from a DataCanvas. Disabled by default; the tool stays listed but uncallable until set to true.","format":"string","default":"false","name":"FX_ENABLE_CANVAS_DROP"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"remotes":[{"type":"streamable-http","url":"https://exchange-rates.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-19T18:52:28.810381Z","publishedAt":"2026-09-19T18:52:28.810381Z","updatedAt":"2026-09-19T18:52:28.810381Z","isLatest":true}}}],"metadata":{"count":12}}
