{"apiVersion":"v1","directorySlug":"crudecode-mcp-b07199a9dd","title":"crudecode","description":"crudecode is a data provider for the AI tools and agents you","pageUrl":"https://www.mcpbundles.com/skills/crudecode-mcp-b07199a9dd","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.crudecode.dev/v1/mcp","hostedMcpUrl":null,"toolCount":12,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"dev.crudecode/crudecode-mcp-b07199a9dd","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_coverage","description":"What data exists: states covered and their source agencies, well\ncounts, production series start and latest month, how complete each\nheader field is, and known gaps (e.g. states with headers but no\nvolumes). Call this first when unsure whether a question can be\nanswered. Pass a two-letter state for its counties and top operators.","inputSchema":{"type":"object","properties":{"state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"logicalName":"get_coverage","displayName":"get_coverage","title":"get_coverage","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search","description":"Find wells, operators or counties by name or number. Returns ranked\nmatches with stable ids to pass to the other tools. An operator id\ngroups every state spelling of the company; tickers resolve too (e.g.\n'EOG'). API numbers work with or without dashes, 10 or 14 digits.","inputSchema":{"type":"object","required":["query"],"properties":{"kinds":{"anyOf":[{"type":"array","items":{"enum":["well","operator","county"],"type":"string"}},{"type":"null"}],"default":null},"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"query":{"type":"string"}},"additionalProperties":false},"logicalName":"search","displayName":"search","title":"search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_well","description":"Full header for each well: operator of record, status, well type,\ntrajectory, formation(s), county, legal description, surface and\nbottom-hole location, spud / completion / first production / plug\ndates, depths, lateral length, completion design where published, plus\na production summary (first/last producing month, cumulative oil, gas,\nwater, BOE).","inputSchema":{"type":"object","required":["well_apis"],"properties":{"well_apis":{"type":"array","items":{"type":"string"},"maxItems":50,"minItems":1}},"additionalProperties":false},"logicalName":"get_well","displayName":"get_well","title":"get_well","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_production","description":"Monthly oil (bbl), gas (mcf), water (bbl), BOE and days produced per\nwell, or summed across a set of wells. Give well_apis, a filter, or both\n(intersected). start/end bound calendar months in both align modes.\nPer-well output is capped at 50 wells; combine=true sums up to 2,000.","inputSchema":{"type":"object","properties":{"end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"default":null},"align":{"enum":["calendar","first_prod"],"type":"string","default":"calendar"},"start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"default":null},"filter":{"anyOf":[{"type":"object","properties":{"states":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"status":{"anyOf":[{"type":"array","items":{"enum":["PERMIT_PENDING","PERMITTED","CANCELLED","DRILLING","SUSPENDED","DUC","PRODUCING","SHUT_IN","ACTIVE","INACTIVE","TEMP_ABANDONED","PLUGGED"],"type":"string"}},{"type":"null"}],"default":null},"spud_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"default":null},"counties":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"operators":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"spud_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"default":null},"well_apis":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"formations":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"trajectory":{"anyOf":[{"type":"array","items":{"enum":["HORIZONTAL","DIRECTIONAL","VERTICAL"],"type":"string"}},{"type":"null"}],"default":null},"well_types":{"anyOf":[{"type":"array","items":{"enum":["OIL","GAS","OIL_AND_GAS","CONDENSATE","DRY","INJECTION","WATER_INJECTION","GAS_INJECTION","WATER_DISPOSAL","WATER_SUPPLY","GAS_STORAGE","MONITOR","CO2","HELIUM","LITHIUM","POTASH","TEST"],"type":"string"}},{"type":"null"}],"default":null},"first_prod_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"default":null},"lateral_max_ft":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":null},"lateral_min_ft":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":null},"first_prod_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"default":null}}},{"type":"null"}],"default":null},"combine":{"type":"boolean","default":false},"well_apis":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null}},"additionalProperties":false},"logicalName":"get_production","displayName":"get_production","title":"get_production","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_schema","description":"Database schema reference for run_sql: every table, column, join key,\nunit and fill caveat in marts, market and financials. Call it before\nwriting SQL against a table you haven't seen. Pass a table\n('marts.production') or a schema ('financials') to get just that part, or\nnothing for the whole reference.","inputSchema":{"type":"object","properties":{"name":{"type":"string","default":""}},"additionalProperties":false},"logicalName":"get_schema","displayName":"get_schema","title":"get_schema","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"run_sql","description":"Read-only SQL over the Crude Code well warehouse, for questions the other data tools don't cover: one SELECT (or WITH) against marts, market or financials. No DDL/DML, one statement.","inputSchema":{"type":"object","required":["sql"],"properties":{"sql":{"type":"string"},"schema":{"type":"string","default":"marts"}},"additionalProperties":false},"logicalName":"run_sql","displayName":"run_sql","title":"run_sql","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_skill","description":"Fetch a packaged Crude Code skill: the procedure for extracting an uploaded dataroom, reading an ARIES database, valuing its curves, writing forecasts back to ARIES, or forecasting wells for a deal valuation. Returns the instructions plus the files the skill needs, for you to follow directly.","inputSchema":{"type":"object","properties":{"name":{"type":"string","default":""}},"additionalProperties":false},"logicalName":"get_skill","displayName":"get_skill","title":"get_skill","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"message_team","description":"Send a message to the Crude Code team: a bug, a wrong or surprising result, slowness, frustration, or a wish (a feature, a dataset like \"can you get Louisiana wells?\", a report they wish existed). Friction and wants are both signal; don't gatekeep on whether the issue is \"real\".","inputSchema":{"type":"object","required":["subject","body"],"properties":{"body":{"type":"string"},"context":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null},"subject":{"type":"string"},"category":{"type":"string","default":"other"}},"additionalProperties":false},"logicalName":"message_team","displayName":"message_team","title":"message_team","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_user","description":"Attach or update the recovery email and display name on the user's own CrudeCode account: how someone claims an account created in chat so it can be recovered, or fixes a wrong email or sets their name. Both fields are optional; the account works without either, but with no recovery email it can't be recovered if the connector URL is lost.","inputSchema":{"type":"object","properties":{"name":{"type":"string","default":""},"email":{"type":"string","default":""}},"additionalProperties":false},"logicalName":"update_user","displayName":"update_user","title":"update_user","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"deal_forecast_wells","description":"Commit the production forecasts you have engineered: you assert decline parameters per well or cohort; the server validates bounds, saves, and echoes the consequences (next-12/24 vs trailing-12, effective decline, EUR, terminal switch, warnings). It never chooses a parameter. **Before the first forecast on a deal, call `get_skill(\"well-forecasting\")` and follow it** (its `forecast_wells.md` is the full field reference).","inputSchema":{"type":"object","required":["forecasts"],"properties":{"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"forecasts":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":false},"logicalName":"deal_forecast_wells","displayName":"deal_forecast_wells","title":"deal_forecast_wells","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"deal_valuation","description":"Run economics on the wells you already forecast and return the deal's numbers: risked PV by reserve status, the scenario grid, evidence, forecast checks. Call AFTER `deal_forecast_wells`, with the same `run_id`.","inputSchema":{"type":"object","required":["run_id","params"],"properties":{"params":{"type":"object","additionalProperties":true},"run_id":{"type":"string"}},"additionalProperties":false},"logicalName":"deal_valuation","displayName":"deal_valuation","title":"deal_valuation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"export_data","description":"Hand the user a file of work you've already done, a CSV or a zip, as a download link. Print the link in chat and let them click it; never fetch it yourself, the bytes go to the user's disk, not your context.","inputSchema":{"type":"object","required":["kind"],"properties":{"sql":{"type":"string","default":""},"kind":{"type":"string"},"label":{"type":"string","default":""},"run_id":{"type":"string","default":""},"schema":{"type":"string","default":"marts"}},"additionalProperties":false},"logicalName":"export_data","displayName":"export_data","title":"export_data","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=crudecode&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuY3J1ZGVjb2RlLmRldi92MS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22crudecode%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.crudecode.dev%2Fv1%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22crudecode%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.crudecode.dev%2Fv1%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=crudecode&connectorUrl=https%3A%2F%2Fmcp.crudecode.dev%2Fv1%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"crudecode\" --url \"https://mcp.crudecode.dev/v1/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/crudecode-mcp-b07199a9dd","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/crudecode-mcp-b07199a9dd/tools/{tool}","mcpServerUrl":"https://mcp.crudecode.dev/v1/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/crudecode-mcp-b07199a9dd?live=1"}