Skip to content

feat: add structured data and API interaction tools - #869

Open
avoidwork wants to merge 2 commits into
mainfrom
feat/structured-data-api-tools
Open

feat: add structured data and API interaction tools#869
avoidwork wants to merge 2 commits into
mainfrom
feat/structured-data-api-tools

Conversation

@avoidwork

@avoidwork avoidwork commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Description

Adds six new tools for structured data and API interaction:

  • REST API Client (api): Authenticated GET/POST/PUT/DELETE/PATCH requests with bearer, basic, and API key auth. Enforces URL allowlist and scheme blocking.
  • GraphQL Client (graphql): Execute queries and mutations with depth/complexity limits and timeouts.
  • Webhook Management (webhook): Create, list, delete webhooks with HMAC-SHA256 signature verification.
  • JSON Manipulation (json): Parse, serialize, transform (mapping rules), filter (JSONPath), and access (dot notation).
  • YAML Manipulation (yaml): Parse, serialize, transform (mapping rules), filter (dot notation), and access (dot notation).
  • Data Transformation (data): Convert between JSON, YAML, and CSV formats with optional mapping rules.

Type of Change

  • New feature (non-breaking change which adds functionality)

Testing

  • Unit tests for all six tools covering happy paths, error handling, and security (URL filtering, internal IP blocking).
  • Integration tests with mock HTTP servers for api and webhook tools.
  • All 1344 tests pass with maintained coverage.

Coverage

  • Line coverage maintained

Checklist

  • npm run lint passes
  • Tests pass with maintained line coverage
  • No forbidden patterns used
  • Conventional Commit style applied

Dependencies

New npm dependencies added:

  • graphql-request (v6.x) — GraphQL queries/mutations
  • jsonpath-plus (v8.x) — JSONPath expressions
  • js-yaml (v4.x) — YAML parsing/dumping
  • csv-parse (v6.x) — CSV parsing
  • csv-generate (v6.x) — CSV generation
  • csv-stringify (v6.x) — CSV stringification

Related Issue

Addresses issue #788: feat: add structured data and API interaction tools

…nd tasks for REST API, GraphQL, JSON, YAML, data transformation, and webhook management tools
Add REST API client, GraphQL client, webhook management, JSON/YAML
manipulation, and data transformation tools with full test coverage.

- src/tools/api.js: REST API client with auth, URL filtering, timeouts
- src/tools/graphql.js: GraphQL client with depth/complexity limits
- src/tools/webhook.js: Webhook CRUD and HMAC verification
- src/tools/json.js: JSON parse, serialize, transform, filter, access
- src/tools/yaml.js: YAML parse, serialize, transform, filter, access
- src/tools/data.js: JSON/YAML/CSV format conversion
- src/sandbox/urlFilter.js: URL allowlist with test mode support
- tests/unit/*.test.js: Unit tests for all new tools
- tests/integration/*.test.js: Integration tests with mock servers
- src/tools/index.js: Tool registration with permission gating
@avoidwork avoidwork changed the title feat: structured-data-api-tools — OpenSpec proposal, design, specs, and tasks for structured data and API interaction tools feat: add structured data and API interaction tools Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant