waaseyaa / mcp
Remote MCP server endpoint for Waaseyaa
Requires
- php: >=8.5
- waaseyaa/access: ^0.1.0-alpha.189
- waaseyaa/ai-agent: ^0.1.0-alpha.189
- waaseyaa/ai-schema: ^0.1.0-alpha.189
- waaseyaa/ai-tools: ^0.1.0-alpha.189
- waaseyaa/ai-vector: ^0.1.0-alpha.189
- waaseyaa/api: ^0.1.0-alpha.189
- waaseyaa/cache: ^0.1.0-alpha.189
- waaseyaa/entity: ^0.1.0-alpha.189
- waaseyaa/routing: ^0.1.0-alpha.189
- waaseyaa/workflows: ^0.1.0-alpha.189
Requires (Dev)
- phpunit/phpunit: ^10.5
- dev-main / 0.1.x-dev
- v0.1.0-alpha.189
- v0.1.0-alpha.188
- v0.1.0-alpha.187
- v0.1.0-alpha.186
- v0.1.0-alpha.185
- v0.1.0-alpha.184
- v0.1.0-alpha.183
- v0.1.0-alpha.182
- v0.1.0-alpha.181
- v0.1.0-alpha.180
- v0.1.0-alpha.179
- v0.1.0-alpha.178
- v0.1.0-alpha.177
- v0.1.0-alpha.176
- v0.1.0-alpha.175
- v0.1.0-alpha.174
- v0.1.0-alpha.173
- v0.1.0-alpha.172
- v0.1.0-alpha.171
- v0.1.0-alpha.170
- v0.1.0-alpha.169
- v0.1.0-alpha.168
- v0.1.0-alpha.167
- v0.1.0-alpha.166
- v0.1.0-alpha.165
- v0.1.0-alpha.164
- v0.1.0-alpha.163
- v0.1.0-alpha.162
- v0.1.0-alpha.161
- v0.1.0-alpha.160
- v0.1.0-alpha.159
- v0.1.0-alpha.158
- v0.1.0-alpha.157
- v0.1.0-alpha.156
- v0.1.0-alpha.155
- v0.1.0-alpha.154
- v0.1.0-alpha.153
- v0.1.0-alpha.152
- v0.1.0-alpha.151
- v0.1.0-alpha.150
- v0.1.0-alpha.149
- v0.1.0-alpha.148
- v0.1.0-alpha.147
- v0.1.0-alpha.146
- v0.1.0-alpha.145
- v0.1.0-alpha.143
- v0.1.0-alpha.142
- v0.1.0-alpha.140
- v0.1.0-alpha.139
- v0.1.0-alpha.138
- v0.1.0-alpha.137
- v0.1.0-alpha.136
- v0.1.0-alpha.135
- v0.1.0-alpha.134
- v0.1.0-alpha.133
- v0.1.0-alpha.132
- v0.1.0-alpha.131
- v0.1.0-alpha.130
- v0.1.0-alpha.129
- v0.1.0-alpha.128
- v0.1.0-alpha.127
- v0.1.0-alpha.126
- v0.1.0-alpha.125
- v0.1.0-alpha.124
- v0.1.0-alpha.123
- v0.1.0-alpha.122
- v0.1.0-alpha.121
- v0.1.0-alpha.120
- v0.1.0-alpha.119
- v0.1.0-alpha.118
- v0.1.0-alpha.117
- v0.1.0-alpha.116
- v0.1.0-alpha.115
- v0.1.0-alpha.114
- v0.1.0-alpha.113
- v0.1.0-alpha.112
- v0.1.0-alpha.111
- v0.1.0-alpha.110
- v0.1.0-alpha.109
- v0.1.0-alpha.108
- v0.1.0-alpha.107
- v0.1.0-alpha.106
- v0.1.0-alpha.105
- v0.1.0-alpha.104
- v0.1.0-alpha.103
- v0.1.0-alpha.102
- v0.1.0-alpha.101
- v0.1.0-alpha.100
- v0.1.0-alpha.99
- v0.1.0-alpha.98
- v0.1.0-alpha.97
- v0.1.0-alpha.96
- v0.1.0-alpha.95
- v0.1.0-alpha.94
- v0.1.0-alpha.93
- v0.1.0-alpha.92
- v0.1.0-alpha.91
- v0.1.0-alpha.90
- v0.1.0-alpha.89
- v0.1.0-alpha.88
- v0.1.0-alpha.87
- v0.1.0-alpha.86
- v0.1.0-alpha.85
- v0.1.0-alpha.84
- v0.1.0-alpha.83
- v0.1.0-alpha.82
- v0.1.0-alpha.81
- v0.1.0-alpha.80
- v0.1.0-alpha.79
- v0.1.0-alpha.78
- v0.1.0-alpha.77
- v0.1.0-alpha.76
- v0.1.0-alpha.75
- v0.1.0-alpha.74
- v0.1.0-alpha.73
- v0.1.0-alpha.72
- v0.1.0-alpha.71
- v0.1.0-alpha.70
- v0.1.0-alpha.69
- v0.1.0-alpha.68
- v0.1.0-alpha.67
- v0.1.0-alpha.66
- v0.1.0-alpha.65
- v0.1.0-alpha.64
- v0.1.0-alpha.63
- v0.1.0-alpha.62
- v0.1.0-alpha.61
- v0.1.0-alpha.58
- v0.1.0-alpha.57
- v0.1.0-alpha.56
- v0.1.0-alpha.55
- v0.1.0-alpha.54
- v0.1.0-alpha.53
- v0.1.0-alpha.52
- v0.1.0-alpha.51
- v0.1.0-alpha.50
- v0.1.0-alpha.49
- v0.1.0-alpha.48
- v0.1.0-alpha.47
- v0.1.0-alpha.46
- v0.1.0-alpha.45
- v0.1.0-alpha.44
- v0.1.0-alpha.43
- v0.1.0-alpha.42
- v0.1.0-alpha.41
- v0.1.0-alpha.40
- v0.1.0-alpha.39
- v0.1.0-alpha.38
- v0.1.0-alpha.37
- v0.1.0-alpha.36
- v0.1.0-alpha.35
- v0.1.0-alpha.34
- v0.1.0-alpha.33
- v0.1.0-alpha.32
- v0.1.0-alpha.31
- v0.1.0-alpha.30
- v0.1.0-alpha.29
- v0.1.0-alpha.28
- v0.1.0-alpha.27
- v0.1.0-alpha.26
- v0.1.0-alpha.25
- v0.1.0-alpha.24
- v0.1.0-alpha.23
- v0.1.0-alpha.22
- v0.1.0-alpha.21
- v0.1.0-alpha.20
- v0.1.0-alpha.19
- v0.1.0-alpha.18
- v0.1.0-alpha.17
- v0.1.0-alpha.16
- v0.1.0-alpha.15
- v0.1.0-alpha.14
- v0.1.0-alpha.13
- v0.1.0-alpha.12
- v0.1.0-alpha.11
- v0.1.0-alpha.10
- v0.1.0-alpha.9
- v0.1.0-alpha.8
- v0.1.0-alpha.7
- v0.1.0-alpha.6
- v0.1.0-alpha.5
- v0.1.0-alpha.4
- v0.1.0-alpha.3
- v0.1.0-alpha.2
- v0.1.0-alpha.1
This package is auto-updated.
Last update: 2026-06-05 13:21:28 UTC
README
Layer 6 — Interfaces
Model Context Protocol (MCP) endpoint for Waaseyaa applications.
Exposes Waaseyaa's #[AsAgentTool]-registered tools to external MCP
clients (Claude Code, Cursor, Claude Desktop, custom AI agents) over
Streamable HTTP at /mcp. Authenticates requests via
McpAuthInterface, then dispatches JSON-RPC payloads against a
per-request AgentToolRegistryBridge constructed with the
auth-resolved AccountInterface. Per-tool capability gating runs at
the AbstractAgentTool::requireCapability boundary against the
account's permissions.
Quick reference
- Endpoint:
POST /mcp(JSON-RPC; methods:initialize,ping,tools/list,tools/call). - Server card:
GET /.well-known/mcp.json(MCP discovery). - Authentication:
Authorization: Bearer <token>validated byMcpAuthInterface::authenticate(). Default binding:BearerTokenAuth(tokens: [])(empty-token map). Production applications override by re-bindingMcpAuthInterfaceon the kernel-services bus or in an application provider. - Tool surface: every class carrying
#[AsAgentTool]and implementingAgentToolInterfacebecomes a callable MCP tool with no per-tool MCP code.
Bimaaji tool family
The first first-party tool family surfaced through this package is
Bimaaji, exposed via five #[AsAgentTool] adapters in
packages/ai-agent/src/Tool/Bimaaji/:
| Tool name | Capability | Purpose |
|---|---|---|
bimaaji_introspect_graph |
bimaaji.read |
Full application graph (six default sections + version). |
bimaaji_introspect_section |
bimaaji.read |
Single section (admin, entities, jsonapi, public_surface, routing, sovereignty). |
bimaaji_propose_mutation |
bimaaji.mutate |
Validate a proposed schema mutation against the application graph. |
bimaaji_generate_patch |
bimaaji.mutate |
Generate a PatchSet from a validated mutation. Never writes to disk — the calling MCP client persists. |
bimaaji_search_specs |
bimaaji.read |
Substring search over docs/specs/*.md; returns {file, section_title, line_number, snippet} per match. |
Capability model. bimaaji.read is intended to be broadly
granted to authenticated MCP clients; bimaaji.mutate is opt-in per
role/account. The framework does not grant either by default — the
integrating application's permission stack does.
Example claude_desktop_config.json fragment (replace <token>
with the bearer token your McpAuthInterface implementation expects):
{
"mcpServers": {
"waaseyaa": {
"url": "https://your-host.example/mcp",
"headers": {
"Authorization": "Bearer <token>"
}
}
}
}
Key classes
McpEndpoint— JSON-RPC dispatcher; constructs the per-request bridge with the auth-resolved account.McpServerCard— server-card route controller (/.well-known/mcp.json).McpRouteProvider— registers both routes through the package'sMcpServiceProvider.McpServiceProvider— binds theMcpAuthInterfacedefault (BearerTokenAuth(tokens: [])); production overrides via re-binding.Bridge\AgentToolRegistryBridge— adaptsWaaseyaa\AI\Tools\ToolRegistryInterfaceto the MCPToolRegistryInterface+ToolExecutorInterfacecontracts; constructed per-request byMcpEndpoint::dispatch().
Canonical spec
See docs/specs/mcp-endpoint.md for the authoritative architecture
documentation including the per-request bridge architecture, the
Bimaaji MCP bridge section (shipped tool inventory, capability model,
M-G → M3 transition rationale), and the post-WP01..WP03 file
reference.
Legacy surface
The pre-M3 McpController + Tools/* + Cache/ + Rpc/* files
remain in-place from the original entity/discovery/traversal/
editorial tool-class architecture, still test-covered via direct
instantiation in tests/Integration/Phase14/AiMcpIntegrationTest.php.
They are no longer reachable from HTTP routing (the foundation
McpRouter was retired in M3 WP01). A future cleanup mission may
delete them.