Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Browse and query the EIA API v2 — electricity, petroleum, natural gas, coal, forecasts via MCP.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
EIA_API_KEY, EIA_DATASET_TTL_SECONDS, EIA_DATAFRAME_DROP_ENABLED, EIA_CANVAS_MAX_ROWS, EIA_FACET_VALUE_CAP, EIA_CLAMP_LIMITS, CANVAS_PROVIDER_TYPE, MCP_LOG_LEVEL필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://eia-energy.caseyjhand.com/mcpClaude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"eia-energy": {
"command": "npx",
"args": [
"-y",
"@cyanheads/eia-energy-mcp-server"
],
"env": {
"EIA_API_KEY": "your-value",
"EIA_DATASET_TTL_SECONDS": "your-value",
"EIA_DATAFRAME_DROP_ENABLED": "your-value",
"EIA_CANVAS_MAX_ROWS": "your-value",
"EIA_FACET_VALUE_CAP": "your-value",
"EIA_CLAMP_LIMITS": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http eia-energy https://eia-energy.caseyjhand.com/mcpclaude mcp add eia-energy --env EIA_API_KEY=your-value --env EIA_DATASET_TTL_SECONDS=your-value --env EIA_DATAFRAME_DROP_ENABLED=your-value --env EIA_CANVAS_MAX_ROWS=your-value --env EIA_FACET_VALUE_CAP=your-value --env EIA_CLAMP_LIMITS=your-value --env CANVAS_PROVIDER_TYPE=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/eia-energy-mcp-server실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"eia-energy": {
"url": "https://eia-energy.caseyjhand.com/mcp"
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"eia-energy": {
"command": "npx",
"args": [
"-y",
"@cyanheads/eia-energy-mcp-server"
],
"env": {
"EIA_API_KEY": "your-value",
"EIA_DATASET_TTL_SECONDS": "your-value",
"EIA_DATAFRAME_DROP_ENABLED": "your-value",
"EIA_CANVAS_MAX_ROWS": "your-value",
"EIA_FACET_VALUE_CAP": "your-value",
"EIA_CLAMP_LIMITS": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"eia-energy": {
"type": "http",
"url": "https://eia-energy.caseyjhand.com/mcp"
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"eia-energy": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/eia-energy-mcp-server"
],
"env": {
"EIA_API_KEY": "your-value",
"EIA_DATASET_TTL_SECONDS": "your-value",
"EIA_DATAFRAME_DROP_ENABLED": "your-value",
"EIA_CANVAS_MAX_ROWS": "your-value",
"EIA_FACET_VALUE_CAP": "your-value",
"EIA_CLAMP_LIMITS": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://eia-energy.caseyjhand.com/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
EIA_DATASET_TTL_SECONDS envEIA_DATAFRAME_DROP_ENABLED envEIA_CANVAS_MAX_ROWS envEIA_FACET_VALUE_CAP envEIA_CLAMP_LIMITS envCANVAS_PROVIDER_TYPE envMCP_LOG_LEVEL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
도구 이름과 설명은 서버가 2026년 11월 6일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
eia_browse_routesLists child routes under a given path in the EIA dataset taxonomy. Start with no path to get the 14 top-level categories (electricity, petroleum, natural-gas, steo, aeo, ieo, seds, etc.), then drill into subcategories. Each result includes an isLeaf flag — leaf routes are queryab
eia_describe_routeReturns metadata for a leaf route: available facets with their valid values, data column names and units, frequency options, and date range. Call this before eia_query_route to discover valid facet IDs, facet values, column IDs, and frequency codes. Each facet returns a capped wi
eia_search_routesFuzzy text search across route names, descriptions, category labels, and the names of the data columns a route publishes. Resolves natural-language queries like "electricity retail sales by state" or "natural gas imports" to matching route paths, and a measure named only by its c
eia_query_routeFetches data from a leaf route with optional facet filters, date range, frequency, and column selection. Use eia_describe_route first to discover valid facet IDs, facet values, column IDs, and frequency codes. Data values are strings in the response (EIA API returns all numeric v
eia_dataframe_describeList canvas dataframes (df_ ) materialized by eia_query_route calls that passed stage: true, with provenance, expiry, row count, and column schema. Nothing is staged until such a call runs, so an empty list on a fresh session means no query has staged yet, not that staging failed
eia_dataframe_queryRun a single-statement SELECT against canvas dataframes registered by eia_query_route calls that passed stage: true — a query that staged nothing leaves no table to select from. Standard DuckDB SQL — joins, aggregates, window functions, CTEs all supported. Reference dataframes by
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 cyanheads 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
188ms 만에 응답(HTTP 200)
로그인 필요 없음
도구 설명 6개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: EIA_API_KEY
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.5.1)은 3일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, NexusWindows
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
@cyanheads/eia-energy-mcp-server Browse and query the U.S. Energy Information Administration API v2 — electricity, petroleum, natural gas, coal, forecasts, and more via MCP. STDIO or Streamable HTTP. 4 core tools + 3 DataCanvas tools
Public Hosted Server: https://eia-energy.caseyjhand.com/mcp
US energy data from the Energy Information Administration (EIA): electricity, petroleum, natural gas, coal, and forecasts. Find datasets in plain language, query time series with facet filters, and run SQL over large results.
| Tool | Description |
|---|---|
eia_browse_routes | Lists child routes under a path in the EIA dataset taxonomy; omit path for the 14 top-level categories. |
eia_describe_route | Returns a leaf route's facets, valid values, data columns, frequencies, and date range. |
eia_search_routes | Fuzzy text search across route names, descriptions, data-column names, STEO, SEDS, and Monthly Energy Review series names, and facet values — including benchmark series such as Henry Hub, WTI, and Cushing. Resolves legacy APIv1 series IDs (PET.RWTC.W) to their route and filters. |
eia_query_route | Fetches data from a leaf route with facet filters, date range, and column selection; optionally stages results for SQL. |
eia_dataframe_describe | Lists active DataCanvas dataframes staged by eia_query_route, with schema and provenance. |
eia_dataframe_query | Runs a read-only SQL SELECT against staged DataCanvas dataframes. |
eia_dataframe_drop | Drops a DataCanvas dataframe, freeing its memory. |
The three eia_dataframe_* tools need DataCanvas, which is on by default; eia_dataframe_drop additionally requires EIA_DATAFRAME_DROP_ENABLED=true. With CANVAS_PROVIDER_TYPE=none, which the Claude Desktop bundle sets, they are neither callable nor listed by MCP. Disabled definitions remain in the server manifest with their enable hints. A default deployment lists the first six tools.
Browse accepts route as an alias for path; describe and query accept path as an alias for route. Supplying both spellings is rejected. Whitespace and slashes are normalized, then exactly one complete leading v2 segment is removed: /v2/electricity/retail-sales/ resolves to electricity/retail-sales, and /v2/ browses root. Full URLs, /data suffixes, interior v2, and case remain unchanged.
All four route tools distinguish retryable upstream failures: rate_limited for HTTP 429 or OVER_RATE_LIMIT, upstream_unreachable for transport failures, upstream_unavailable for HTTP service outages, upstream_invalid_response for unusable bodies or missing envelopes, and upstream_timeout when EIA does not answer in time — each attempt is cut at 45 s, and a call's attempts, backoffs, and chained requests share one 56 s deadline, inside the 60 s timeout MCP clients apply. Recovery hints reach both response surfaces. HTTP 501 remains definitive, 504 remains a timeout, and caller cancellation stays cancellation.
eia_browse_routes toolpath for the 14 top-level categories; pass a path to browse its children.isLeaf: describe and query leaves, or browse categories further.route_not_found; EIA rate-limiting, being unreachable, or not answering in time returns retryable rate_limited, upstream_unreachable, or upstream_timeout.eia_describe_route toolroute for facets, data columns, frequencies, and date range. Each facet window is capped at EIA_FACET_VALUE_CAP (default 50); page with facet and values_offset.values_query: each facet keeps the values whose id, name, or alias contains it, ignoring case, and values_offset pages the matches. values_query: "palo verde" on electricity/facility-fuel's plantCode returns 6008 and 57773 in one call. On the balancing-authority facets of electricity routes (respondent, fromba, toba, parent, balancing_authority_code), a value also matches by its ISO/RTO acronym: ERCOT returns ERCO, SPP returns SWPP and SWPW, and CAISO on stateid matches nothing.date_range is metadata for the default frequency; another frequency may extend outside it. Both response surfaces carry this caveat beside the unchanged start/end values.value_count, values_truncated, and, with values_query, values_matched describe each window. A facet whose values EIA did not return is listed in unavailable_facets; the next call retries it.units: "" has no unit in the route metadata. The notice names the eia_query_route row field its unit is in when a row has one ({col}-units, or units or unit on routes whose only column is value), since the unit can differ by row; a column whose rows have no such field, like county or latitude on electricity/operating-generator-capacity, has no unit. The notice also names facet lists EIA publishes partial: international's productId, activityId, and unit cover only its monthly and quarterly series.route_not_found, route_not_queryable, facet_not_found, and retryable facet_unavailable, rate_limited, upstream_unreachable, upstream_timeout.eia_search_routes toolnameplate capacity → electricity/operating-generator-capacity), STEO's 1,469, SEDS's 968, and the Monthly Energy Review's 984 series names (primary energy consumption total or its ID TETCBUS → total-energy, msn: TETCBUS), and facet values. Before any describe, the facet values cover fuel, sector, technology, and coal-rank vocabularies, RTO balancing authorities by name, EIA code, or ISO/RTO acronym (Electric Reliability Council of Texas, ERCO, or ERCOT → respondent: ERCO), and the series and product names of the daily and weekly petroleum and natural-gas routes (Henry Hub → natural-gas/pri/fut, series: RNGWHHD); describing a route adds its own. limit defaults to 10; a larger value returns at most 30 and says so, even on short or empty results. truncated is true when more matches exist. Only the first 256 characters of query are searched, with a notice when it is cut.score (0 exact, 1 no match; above 0.72 is weak) and may carry a filter_hint for eia_query_route. Check indexComplete and indexGaps before trusting a short result set./v2/seriesid lookup before any text search, in any case: ELEC.PRICE.TX-RES.M returns one result, electricity/retail-sales with filter_hint {sectorid: "RES", stateid: "TX"}, frequency: "monthly", and columns: ["price"], ready for eia_query_route. A hit needs no index, so it answers in under a second even on a cold server. When EIA's own lookup reports no rows for the mapping it returns (some AEO IDs), the notice says the query will come back empty. An ID EIA does not recognize (PET.ZZZZZZ.W, or U.S.A, which only looks like one) returns the text search with a notice saying so; a lookup that times out, is rate-limited, or hits an outage does the same with a retry notice, never an error.rate_limited, upstream_unreachable, or upstream_timeout.eia_query_route toolroute, with optional facet-ID filters, columns, frequency, start/end, and sort. Page with offset and length (default 25; a larger value returns at most 5,000 and says so).length rows per page; continue at next_offset (= offset + returned count).YYYY-MM data, a year-only bound means January: end: "2021" stops at 2021-01; use 2021-12 for the full year. Query notices disclose this for either bound without expanding it.start: "2023-01", end: "2023" returns January at monthly. A range is reported as inverted (no_data) only when EIA returns no rows and start selects a later period than end; the message names both periods. At local-hourly each bound needs its hour and UTC offset (2024-02-01T02-06); one without fails as invalid_period before any request. So does a bound EIA would not read as written: a month outside 01–12 or an hour that is not two digits at any frequency, and a day its month lacks or an hour past 23 that rolls into another period at the effective frequency — 2024-02-30 at daily or monthly, 2024-01-31T24 at monthly. At weekly and four-week-average only the day is checked; an hour past 23 is sent, since whether it rolls into another week depends on the route's weekly calendar. A rollover that stays inside the period it names is sent, since EIA answers with that period (2024-02-30 at quarterly is 2024-Q1).total reports the full match count; values remain strings and units appear per row as {col}-units, or as `un앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요