@cyanheads/fema-mcp-server 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/AGENTS.md +360 -0
  2. package/CLAUDE.md +360 -0
  3. package/Dockerfile +100 -0
  4. package/LICENSE +201 -0
  5. package/README.md +340 -0
  6. package/changelog/0.1.x/0.1.1.md +41 -0
  7. package/changelog/template.md +127 -0
  8. package/dist/config/server-config.d.ts +9 -0
  9. package/dist/config/server-config.d.ts.map +1 -0
  10. package/dist/config/server-config.js +22 -0
  11. package/dist/config/server-config.js.map +1 -0
  12. package/dist/index.d.ts +7 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +45 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/mcp-server/resources/definitions/fema-disaster.resource.d.ts +9 -0
  17. package/dist/mcp-server/resources/definitions/fema-disaster.resource.d.ts.map +1 -0
  18. package/dist/mcp-server/resources/definitions/fema-disaster.resource.js +59 -0
  19. package/dist/mcp-server/resources/definitions/fema-disaster.resource.js.map +1 -0
  20. package/dist/mcp-server/tools/definitions/fema-dataframe-describe.tool.d.ts +27 -0
  21. package/dist/mcp-server/tools/definitions/fema-dataframe-describe.tool.d.ts.map +1 -0
  22. package/dist/mcp-server/tools/definitions/fema-dataframe-describe.tool.js +99 -0
  23. package/dist/mcp-server/tools/definitions/fema-dataframe-describe.tool.js.map +1 -0
  24. package/dist/mcp-server/tools/definitions/fema-dataframe-query.tool.d.ts +25 -0
  25. package/dist/mcp-server/tools/definitions/fema-dataframe-query.tool.d.ts.map +1 -0
  26. package/dist/mcp-server/tools/definitions/fema-dataframe-query.tool.js +87 -0
  27. package/dist/mcp-server/tools/definitions/fema-dataframe-query.tool.js.map +1 -0
  28. package/dist/mcp-server/tools/definitions/fema-get-disaster.tool.d.ts +33 -0
  29. package/dist/mcp-server/tools/definitions/fema-get-disaster.tool.d.ts.map +1 -0
  30. package/dist/mcp-server/tools/definitions/fema-get-disaster.tool.js +142 -0
  31. package/dist/mcp-server/tools/definitions/fema-get-disaster.tool.js.map +1 -0
  32. package/dist/mcp-server/tools/definitions/fema-get-housing-assistance.tool.d.ts +53 -0
  33. package/dist/mcp-server/tools/definitions/fema-get-housing-assistance.tool.d.ts.map +1 -0
  34. package/dist/mcp-server/tools/definitions/fema-get-housing-assistance.tool.js +246 -0
  35. package/dist/mcp-server/tools/definitions/fema-get-housing-assistance.tool.js.map +1 -0
  36. package/dist/mcp-server/tools/definitions/fema-get-public-assistance.tool.d.ts +45 -0
  37. package/dist/mcp-server/tools/definitions/fema-get-public-assistance.tool.d.ts.map +1 -0
  38. package/dist/mcp-server/tools/definitions/fema-get-public-assistance.tool.js +210 -0
  39. package/dist/mcp-server/tools/definitions/fema-get-public-assistance.tool.js.map +1 -0
  40. package/dist/mcp-server/tools/definitions/fema-query-dataset.tool.d.ts +32 -0
  41. package/dist/mcp-server/tools/definitions/fema-query-dataset.tool.d.ts.map +1 -0
  42. package/dist/mcp-server/tools/definitions/fema-query-dataset.tool.js +128 -0
  43. package/dist/mcp-server/tools/definitions/fema-query-dataset.tool.js.map +1 -0
  44. package/dist/mcp-server/tools/definitions/fema-search-disasters.tool.d.ts +50 -0
  45. package/dist/mcp-server/tools/definitions/fema-search-disasters.tool.d.ts.map +1 -0
  46. package/dist/mcp-server/tools/definitions/fema-search-disasters.tool.js +281 -0
  47. package/dist/mcp-server/tools/definitions/fema-search-disasters.tool.js.map +1 -0
  48. package/dist/mcp-server/tools/definitions/fema-search-nfip.tool.d.ts +38 -0
  49. package/dist/mcp-server/tools/definitions/fema-search-nfip.tool.d.ts.map +1 -0
  50. package/dist/mcp-server/tools/definitions/fema-search-nfip.tool.js +307 -0
  51. package/dist/mcp-server/tools/definitions/fema-search-nfip.tool.js.map +1 -0
  52. package/dist/services/canvas/canvas-accessor.d.ts +9 -0
  53. package/dist/services/canvas/canvas-accessor.d.ts.map +1 -0
  54. package/dist/services/canvas/canvas-accessor.js +11 -0
  55. package/dist/services/canvas/canvas-accessor.js.map +1 -0
  56. package/dist/services/openfema/openfema-service.d.ts +52 -0
  57. package/dist/services/openfema/openfema-service.d.ts.map +1 -0
  58. package/dist/services/openfema/openfema-service.js +157 -0
  59. package/dist/services/openfema/openfema-service.js.map +1 -0
  60. package/dist/services/openfema/types.d.ts +139 -0
  61. package/dist/services/openfema/types.d.ts.map +1 -0
  62. package/dist/services/openfema/types.js +6 -0
  63. package/dist/services/openfema/types.js.map +1 -0
  64. package/package.json +105 -0
  65. package/server.json +99 -0
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @fileoverview Domain types for the OpenFEMA service layer.
3
+ * @module services/openfema/types
4
+ */
5
+ /** Metadata block nested inside the OpenFEMA response envelope. */
6
+ export interface OpenFemaMetadata {
7
+ /** Total matching count — only populated when $inlinecount=allpages was sent. */
8
+ count: number;
9
+ entityname: string;
10
+ filter: string;
11
+ format: string;
12
+ metadata: boolean;
13
+ orderby: string;
14
+ rundate: string;
15
+ select: string | null;
16
+ skip: number;
17
+ top: number;
18
+ url: string;
19
+ version: string;
20
+ }
21
+ /** Raw OpenFEMA response envelope. Metadata fields are nested under `metadata`. */
22
+ export interface OpenFemaEnvelope {
23
+ /** Metadata block — count, pagination, and request context. */
24
+ metadata: OpenFemaMetadata;
25
+ /** The entity data array — key matches entityname (e.g. "DisasterDeclarationsSummaries"). */
26
+ [entityName: string]: unknown;
27
+ }
28
+ /** OpenFEMA 400 error response shape. */
29
+ export interface OpenFemaErrorResponse {
30
+ error: Array<{
31
+ name: string;
32
+ code: string;
33
+ type: string;
34
+ message: string;
35
+ }>;
36
+ }
37
+ /** OData query options for OpenFEMA requests. */
38
+ export interface OpenFemaQueryOptions {
39
+ filter?: string;
40
+ inlinecount?: boolean;
41
+ orderby?: string;
42
+ select?: string;
43
+ skip?: number;
44
+ top?: number;
45
+ }
46
+ /** A disaster declaration summary row from DisasterDeclarationsSummaries. */
47
+ export interface RawDisasterDeclaration {
48
+ closeoutDate?: string;
49
+ declarationDate?: string;
50
+ declarationTitle?: string;
51
+ declarationType?: string;
52
+ designatedArea?: string;
53
+ disasterNumber?: number;
54
+ fipsCountyCode?: string;
55
+ fipsStateCode?: string;
56
+ hash?: string;
57
+ hmProgramDeclared?: boolean;
58
+ iaProgramDeclared?: boolean;
59
+ id?: string;
60
+ ihmProgramDeclared?: boolean;
61
+ incidentBeginDate?: string;
62
+ incidentEndDate?: string;
63
+ incidentType?: string;
64
+ lastRefresh?: string;
65
+ paProgramDeclared?: boolean;
66
+ placeCode?: string;
67
+ state?: string;
68
+ }
69
+ /** A public assistance funded project row. */
70
+ export interface RawPaProject {
71
+ applicantId?: string;
72
+ applicationTitle?: string;
73
+ county?: string;
74
+ countyCode?: string;
75
+ damageCategoryCode?: string;
76
+ damageCategoryDescrip?: string;
77
+ disasterNumber?: number;
78
+ federalShareObligated?: number;
79
+ firstObligationDate?: string;
80
+ hash?: string;
81
+ id?: string;
82
+ lastObligationDate?: string;
83
+ lastRefresh?: string;
84
+ mitigationAmount?: number;
85
+ projectAmount?: number;
86
+ projectProcessStep?: string;
87
+ projectSize?: string;
88
+ projectStatus?: string;
89
+ pwNumber?: number;
90
+ stateAbbreviation?: string;
91
+ stateNumberCode?: string;
92
+ totalObligated?: number;
93
+ }
94
+ /** A housing assistance row for owners or renters. */
95
+ export interface RawHousingAssistance {
96
+ approvedForFemaAssistance?: number;
97
+ averageFemaInspectedDamage?: number;
98
+ city?: string;
99
+ county?: string;
100
+ disasterNumber?: number;
101
+ hash?: string;
102
+ id?: string;
103
+ lastRefresh?: string;
104
+ noFemaInspectedDamage?: number;
105
+ otherNeedsAmount?: number;
106
+ rentalAmount?: number;
107
+ repairReplaceAmount?: number;
108
+ state?: string;
109
+ totalApprovedIhpAmount?: number;
110
+ totalDamage?: number;
111
+ totalInspected?: number;
112
+ totalInspectedWithNoDamage?: number;
113
+ totalMaxGrants?: number;
114
+ /** Renter-only fields */
115
+ totalWithMajorDamage?: number;
116
+ totalWithModerateDamage?: number;
117
+ totalWithSubstantialDamage?: number;
118
+ validRegistrations?: number;
119
+ zipCode?: string;
120
+ }
121
+ /** An NFIP claims row. */
122
+ export interface RawNfipClaim {
123
+ amountPaidOnBuildingClaim?: number;
124
+ amountPaidOnContentsClaim?: number;
125
+ buildingDamageAmount?: number;
126
+ causeOfDamage?: string;
127
+ contentsDamageAmount?: number;
128
+ countyCode?: string;
129
+ dateOfLoss?: string;
130
+ hash?: string;
131
+ id?: string;
132
+ lastRefresh?: string;
133
+ occupancyType?: number;
134
+ ratedFloodZone?: string;
135
+ reportedZipCode?: string;
136
+ state?: string;
137
+ yearOfLoss?: number;
138
+ }
139
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/openfema/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Domain types for the OpenFEMA service layer.
3
+ * @module services/openfema/types
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/openfema/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/package.json ADDED
@@ -0,0 +1,105 @@
1
+ {
2
+ "name": "@cyanheads/fema-mcp-server",
3
+ "version": "0.1.1",
4
+ "description": "Query FEMA disaster declarations, public assistance grants, housing aid, and NFIP flood insurance claims via MCP. STDIO or Streamable HTTP.",
5
+ "mcpName": "io.github.cyanheads/fema-mcp-server",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "bin": {
10
+ "fema-mcp-server": "dist/index.js"
11
+ },
12
+ "files": [
13
+ "changelog/",
14
+ "dist/",
15
+ "README.md",
16
+ "LICENSE",
17
+ "CLAUDE.md",
18
+ "AGENTS.md",
19
+ "Dockerfile",
20
+ "server.json"
21
+ ],
22
+ "scripts": {
23
+ "build": "bun run scripts/build.ts",
24
+ "rebuild": "bun run scripts/clean.ts && bun run scripts/build.ts",
25
+ "clean": "bun run scripts/clean.ts",
26
+ "devcheck": "bun run scripts/devcheck.ts",
27
+ "audit:refresh": "rm -f bun.lock && bun install && bun audit",
28
+ "tree": "bun run scripts/tree.ts",
29
+ "list-skills": "bun run scripts/list-skills.ts",
30
+ "format": "biome check --write .",
31
+ "format:unsafe": "biome check --write --unsafe .",
32
+ "lint:mcp": "bun run scripts/lint-mcp.ts",
33
+ "lint:packaging": "bun run scripts/lint-packaging.ts",
34
+ "bundle": "npm run build && npx -y @anthropic-ai/mcpb pack . dist/fema-mcp-server.mcpb",
35
+ "changelog:build": "bun run scripts/build-changelog.ts",
36
+ "changelog:check": "bun run scripts/build-changelog.ts --check",
37
+ "release:github": "bun run scripts/release-github.ts",
38
+ "publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish",
39
+ "test": "vitest run",
40
+ "start": "node dist/index.js",
41
+ "start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
42
+ "start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js"
43
+ },
44
+ "keywords": [
45
+ "mcp",
46
+ "mcp-server",
47
+ "model-context-protocol",
48
+ "fema",
49
+ "disaster",
50
+ "emergency-management",
51
+ "nfip",
52
+ "flood-insurance",
53
+ "public-assistance",
54
+ "housing-assistance",
55
+ "openfema",
56
+ "typescript",
57
+ "bun",
58
+ "stdio",
59
+ "streamable-http",
60
+ "ai-agent"
61
+ ],
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "git+https://github.com/cyanheads/fema-mcp-server.git"
65
+ },
66
+ "homepage": "https://github.com/cyanheads/fema-mcp-server#readme",
67
+ "bugs": {
68
+ "url": "https://github.com/cyanheads/fema-mcp-server/issues"
69
+ },
70
+ "author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/fema-mcp-server#readme)",
71
+ "funding": [
72
+ {
73
+ "type": "github",
74
+ "url": "https://github.com/sponsors/cyanheads"
75
+ },
76
+ {
77
+ "type": "buy_me_a_coffee",
78
+ "url": "https://www.buymeacoffee.com/cyanheads"
79
+ }
80
+ ],
81
+ "license": "Apache-2.0",
82
+ "engines": {
83
+ "bun": ">=1.3.0",
84
+ "node": ">=24.0.0"
85
+ },
86
+ "packageManager": "bun@1.3.11",
87
+ "publishConfig": {
88
+ "access": "public"
89
+ },
90
+ "dependencies": {
91
+ "@cyanheads/mcp-ts-core": "^0.9.21",
92
+ "@duckdb/node-api": "^1.5.3-r.3",
93
+ "pino-pretty": "^13.1.3",
94
+ "zod": "^4.4.3"
95
+ },
96
+ "devDependencies": {
97
+ "@biomejs/biome": "^2.4.16",
98
+ "@types/node": "^25.9.1",
99
+ "depcheck": "^1.4.7",
100
+ "ignore": "^7.0.5",
101
+ "tsc-alias": "^1.8.17",
102
+ "typescript": "^6.0.3",
103
+ "vitest": "^4.1.8"
104
+ }
105
+ }
package/server.json ADDED
@@ -0,0 +1,99 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.cyanheads/fema-mcp-server",
4
+ "description": "Query FEMA disaster declarations, public assistance grants, housing aid, and NFIP claims.",
5
+ "repository": {
6
+ "url": "https://github.com/cyanheads/fema-mcp-server",
7
+ "source": "github"
8
+ },
9
+ "version": "0.1.1",
10
+ "packages": [
11
+ {
12
+ "registryType": "npm",
13
+ "registryBaseUrl": "https://registry.npmjs.org",
14
+ "identifier": "@cyanheads/fema-mcp-server",
15
+ "runtimeHint": "bun",
16
+ "version": "0.1.1",
17
+ "packageArguments": [
18
+ {
19
+ "type": "positional",
20
+ "value": "run"
21
+ },
22
+ {
23
+ "type": "positional",
24
+ "value": "start:stdio"
25
+ }
26
+ ],
27
+ "environmentVariables": [
28
+ {
29
+ "name": "MCP_LOG_LEVEL",
30
+ "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
31
+ "format": "string",
32
+ "isRequired": false,
33
+ "default": "info"
34
+ }
35
+ ],
36
+ "transport": {
37
+ "type": "stdio"
38
+ }
39
+ },
40
+ {
41
+ "registryType": "npm",
42
+ "registryBaseUrl": "https://registry.npmjs.org",
43
+ "identifier": "@cyanheads/fema-mcp-server",
44
+ "runtimeHint": "bun",
45
+ "version": "0.1.1",
46
+ "packageArguments": [
47
+ {
48
+ "type": "positional",
49
+ "value": "run"
50
+ },
51
+ {
52
+ "type": "positional",
53
+ "value": "start:http"
54
+ }
55
+ ],
56
+ "environmentVariables": [
57
+ {
58
+ "name": "MCP_HTTP_HOST",
59
+ "description": "The hostname for the HTTP server.",
60
+ "format": "string",
61
+ "isRequired": false,
62
+ "default": "127.0.0.1"
63
+ },
64
+ {
65
+ "name": "MCP_HTTP_PORT",
66
+ "description": "The port to run the HTTP server on.",
67
+ "format": "string",
68
+ "isRequired": false,
69
+ "default": "3010"
70
+ },
71
+ {
72
+ "name": "MCP_HTTP_ENDPOINT_PATH",
73
+ "description": "The endpoint path for the MCP server.",
74
+ "format": "string",
75
+ "isRequired": false,
76
+ "default": "/mcp"
77
+ },
78
+ {
79
+ "name": "MCP_AUTH_MODE",
80
+ "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'.",
81
+ "format": "string",
82
+ "isRequired": false,
83
+ "default": "none"
84
+ },
85
+ {
86
+ "name": "MCP_LOG_LEVEL",
87
+ "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
88
+ "format": "string",
89
+ "isRequired": false,
90
+ "default": "info"
91
+ }
92
+ ],
93
+ "transport": {
94
+ "type": "streamable-http",
95
+ "url": "http://localhost:3010/mcp"
96
+ }
97
+ }
98
+ ]
99
+ }