{"name":"io.github.cyanheads/openaq-mcp-server","slug":"cyanheads-openaq-mcp-server","title":null,"description":"Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.","url":"https://mcp.market/server/cyanheads-openaq-mcp-server","rating":null,"grade":"C","score":64,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":41,"stars":2,"forks":0,"downloads_week":1702,"last_push_at":"2026-09-26T22:15:24.000Z","license":"Apache-2.0"},"uptime":{"percent":0,"checks":28,"ok":0,"last_checked_at":"2026-11-04T05:45:37.898Z","last_ok_at":"2026-09-30T01:05:52.629Z","latency_ms":49},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/cyanheads/openaq-mcp-server","website":null,"version":"0.4.1","remotes":[{"type":"streamable-http","url":"https://openaq.caseyjhand.com/mcp"}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/openaq-mcp-server","version":"0.4.1","runtimeHint":"node","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"OpenAQ v3 API key, sent as the X-API-Key header. Free from openaq.org.","isRequired":true,"format":"string","isSecret":true,"name":"OPENAQ_API_KEY"},{"description":"OpenAQ v3 API base URL override (testing / proxy).","format":"string","default":"https://api.openaq.org/v3","name":"OPENAQ_API_BASE_URL"},{"description":"Set to 'duckdb' to enable DataCanvas SQL over large measurement series.","format":"string","default":"none","name":"CANVAS_PROVIDER_TYPE"},{"description":"Enable deletion of complete staged canvases; requires CANVAS_PROVIDER_TYPE=duckdb.","format":"boolean","default":"false","name":"OPENAQ_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/openaq-mcp-server","version":"0.4.1","runtimeHint":"node","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"OpenAQ v3 API key, sent as the X-API-Key header. Free from openaq.org.","isRequired":true,"format":"string","isSecret":true,"name":"OPENAQ_API_KEY"},{"description":"OpenAQ v3 API base URL override (testing / proxy).","format":"string","default":"https://api.openaq.org/v3","name":"OPENAQ_API_BASE_URL"},{"description":"Set to 'duckdb' to enable DataCanvas SQL over large measurement series.","format":"string","default":"none","name":"CANVAS_PROVIDER_TYPE"},{"description":"Enable deletion of complete staged canvases; requires CANVAS_PROVIDER_TYPE=duckdb.","format":"boolean","default":"false","name":"OPENAQ_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"}]}],"tools":[],"scan":{"score":64,"grade":"C","scanned_at":"2026-10-01T13:47:12.431Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-01T13:47:12.419Z","components":{"code":{"score":25,"max":25,"notes":["40 source files scanned","40 source files scanned"]},"reliability":{"score":0,"max":20,"notes":["remote unreachable: TypeError: fetch failed"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (endpoint requires auth); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"reliability.unreachable","severity":"high","component":"reliability","title":"Remote endpoint did not respond","detail":"TypeError: fetch failed"}],"inputs":{"probes":[{"url":"https://openaq.caseyjhand.com/mcp","reachable":false,"authRequired":false,"latencyMs":102,"error":"TypeError: fetch failed"}],"packages":[{"registryType":"npm","identifier":"@cyanheads/openaq-mcp-server","version":"0.4.1","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-26T22:16:20.350Z","repositoryUrl":"git+https://github.com/cyanheads/openaq-mcp-server.git","weeklyDownloads":851},{"registryType":"npm","identifier":"@cyanheads/openaq-mcp-server","version":"0.4.1","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-26T22:16:20.350Z","repositoryUrl":"git+https://github.com/cyanheads/openaq-mcp-server.git","weeklyDownloads":851}],"repo":{"found":true,"owner":"cyanheads","repo":"openaq-mcp-server","archived":false,"pushedAt":"2026-09-26T22:15:24Z","stars":2,"forks":0,"openIssues":3,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/10339515?v=4","ownerCreatedAt":"2014-12-29T13:01:12Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/10339515?v=4&s=128","source":"registry"},"presence":{"stars":2,"forks":0,"downloadsWeek":1702,"license":"Apache-2.0","lastPushAt":"2026-09-26T22:15:24.000Z","score":41}}}},"grade_history":[{"kind":"downgrade","fromGrade":"A","toGrade":"C","reason":"score 64: Remote endpoint did not respond","createdAt":"2026-10-01T13:47:12.878Z"}],"reviews":[]}