Summary
Define the Adapter Element Type as a first-class element in the MCP-AQL specification. Adapters are Markdown files with YAML front matter that declaratively describe how to translate MCP-AQL CRUDE operations to target API calls.
Background
MCP-AQL adapters enable LLMs to interact with any API using a consistent interface. Rather than generating per-adapter code, a universal adapter runtime interprets schema files at call time.
Format
Adapters follow the same pattern as other element types (consistent with DollhouseMCP):
- YAML front matter containing all configuration and operation mappings
- Markdown body for human-readable documentation
Critical: Explicit Type Identification
All adapter files MUST include a type field in the YAML front matter:
---
name: github-api
type: adapter # REQUIRED - explicit element type identification
version: "1.0.0"
# ...
---
This explicit identification is required because:
- Files may exist outside standard directory structures
- Enables tooling to identify element types without path inspection
- Supports collection/portfolio systems that aggregate multiple element types
- Provides clear schema validation targets
Proposed Schema Structure
Required Fields
| Field |
Type |
Description |
name |
string |
Unique identifier for the adapter |
type |
string |
MUST be "adapter" |
version |
string |
Semver version |
description |
string |
Human-readable purpose |
target |
object |
API connection configuration |
operations |
object |
CRUDE operation mappings |
Target Configuration
target:
base_url: "https://api.example.com"
transport: http # Plugin reference
protocol: rest # Plugin reference
serialization: json # Plugin reference
Operation Mapping
operations:
create:
- name: create_resource
maps_to: POST /resources
description: "Create a new resource"
params:
title: { type: string, required: true }
body: { type: string }
response:
type: object
fields: [id, title, created_at]
read:
- name: list_resources
maps_to: GET /resources
pagination:
style: cursor
supports_fields: true
# ... update, delete, execute
Optional Fields
| Field |
Type |
Description |
author |
string |
Creator attribution |
tags |
string[] |
Searchable keywords |
triggers |
string[] |
Activation keywords for LLM discovery |
created |
string |
ISO timestamp |
modified |
string |
ISO timestamp |
auth |
object |
Authentication configuration |
trust |
object |
Trust level metadata (#59) |
rate_limits |
object |
Quota management (#60) |
Design Principles
- Schema IS the adapter - No separate code, no compilation
- Declarative over imperative - Runtime interprets, doesn't execute
- Introspection for free - Generated directly from schema
- Hot reloadable - Change schema, behavior changes immediately
- Human-readable - Markdown body provides documentation
Specification Deliverables
Related Issues
Related Future Issues
- Plugin Interface Specification (to be created)
- Universal Adapter Runtime Specification (to be created)
Summary
Define the Adapter Element Type as a first-class element in the MCP-AQL specification. Adapters are Markdown files with YAML front matter that declaratively describe how to translate MCP-AQL CRUDE operations to target API calls.
Background
MCP-AQL adapters enable LLMs to interact with any API using a consistent interface. Rather than generating per-adapter code, a universal adapter runtime interprets schema files at call time.
Format
Adapters follow the same pattern as other element types (consistent with DollhouseMCP):
Critical: Explicit Type Identification
All adapter files MUST include a
typefield in the YAML front matter:This explicit identification is required because:
Proposed Schema Structure
Required Fields
nametype"adapter"versiondescriptiontargetoperationsTarget Configuration
Operation Mapping
Optional Fields
authortagstriggerscreatedmodifiedauthtrustrate_limitsDesign Principles
Specification Deliverables
Related Issues
Related Future Issues