@pipeworx/mcp-ai-incident-db 0.1.0 → 0.1.2
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.
- package/README.md +3 -3
- package/package.json +1 -1
- package/server.json +1 -1
- package/src/index.ts +7 -5
package/README.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
AI Incident Database (AIID) MCP
|
|
4
4
|
|
|
5
|
-
Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to
|
|
5
|
+
Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1160+ live data sources.
|
|
6
6
|
|
|
7
7
|
## Tools
|
|
8
8
|
|
|
9
9
|
| Tool | Description |
|
|
10
10
|
|------|-------------|
|
|
11
|
-
| `get_incident` | Fetch full
|
|
11
|
+
| `get_incident` | Fetch a full AI Incident Database record by numeric incident_id; returns title, date, description, alleged deployer/developer/harmed parties, and all linked news report URLs. |
|
|
12
12
|
| `list_recent` | Most recently added incidents. |
|
|
13
13
|
| `list_taxonomies` | Taxonomies used to classify incidents (CSET-AIID, GMF, RAIC). |
|
|
14
14
|
|
|
@@ -26,7 +26,7 @@ Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):
|
|
|
26
26
|
}
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
Or connect to the full Pipeworx gateway for access to all
|
|
29
|
+
Or connect to the full Pipeworx gateway for access to all 1160+ data sources:
|
|
30
30
|
|
|
31
31
|
```json
|
|
32
32
|
{
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.pipeworx-io/ai-incident-db",
|
|
4
4
|
"title": "Ai Incident Db",
|
|
5
5
|
"description": "AI Incident Database (AIID) MCP",
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.2",
|
|
7
7
|
"websiteUrl": "https://pipeworx.io/packs/ai-incident-db",
|
|
8
8
|
"repository": {
|
|
9
9
|
"url": "https://github.com/pipeworx-io/mcp-ai-incident-db",
|
package/src/index.ts
CHANGED
|
@@ -51,7 +51,7 @@ const tools: McpToolExport['tools'] = [
|
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
name: 'get_incident',
|
|
54
|
-
description: 'Fetch full
|
|
54
|
+
description: 'Fetch a full AI Incident Database record by numeric incident_id; returns title, date, description, alleged deployer/developer/harmed parties, and all linked news report URLs.',
|
|
55
55
|
inputSchema: {
|
|
56
56
|
type: 'object',
|
|
57
57
|
properties: {
|
|
@@ -92,14 +92,16 @@ async function callTool(name: string, args: Record<string, unknown>): Promise<un
|
|
|
92
92
|
|
|
93
93
|
async function searchIncidents(args: Record<string, unknown>) {
|
|
94
94
|
const filter: Record<string, unknown> = {};
|
|
95
|
-
|
|
95
|
+
// AIID's StringFilter dropped CONTAINS; use REGEX (case-insensitive) with the
|
|
96
|
+
// query escaped to a literal substring match.
|
|
97
|
+
if (args.query) filter['title'] = { REGEX: String(args.query).replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), OPTIONS: 'i' };
|
|
96
98
|
if (args.start_date) filter['date'] = { ...(filter.date as object ?? {}), GTE: String(args.start_date) };
|
|
97
99
|
if (args.end_date) filter['date'] = { ...(filter.date as object ?? {}), LTE: String(args.end_date) };
|
|
98
100
|
const limit = Math.min(200, Math.max(1, (args.limit as number) ?? 25));
|
|
99
101
|
const skip = Math.max(0, (args.offset as number) ?? 0);
|
|
100
102
|
const query = `query SearchIncidents($filter: IncidentFilterType, $pagination: PaginationType, $sort: IncidentSortType) {
|
|
101
103
|
incidents(filter: $filter, pagination: $pagination, sort: $sort) {
|
|
102
|
-
incident_id title date description
|
|
104
|
+
incident_id title date description
|
|
103
105
|
}
|
|
104
106
|
}`;
|
|
105
107
|
return graphql(query, {
|
|
@@ -112,8 +114,8 @@ async function searchIncidents(args: Record<string, unknown>) {
|
|
|
112
114
|
async function getIncident(id: number) {
|
|
113
115
|
const query = `query GetIncident($filter: IncidentFilterType) {
|
|
114
116
|
incident(filter: $filter) {
|
|
115
|
-
incident_id title date description
|
|
116
|
-
AllegedDeployerOfAISystem AllegedDeveloperOfAISystem AllegedHarmedOrNearlyHarmedParties
|
|
117
|
+
incident_id title date description
|
|
118
|
+
AllegedDeployerOfAISystem { entity_id name } AllegedDeveloperOfAISystem { entity_id name } AllegedHarmedOrNearlyHarmedParties { entity_id name }
|
|
117
119
|
reports { report_number title url source_domain date_published authors language }
|
|
118
120
|
editors { userId }
|
|
119
121
|
}
|