Implement clean Moqui-centric MCP v2.0 using built-in JSON-RPC
- Replace custom REST API with Moqui's native /rpc/json endpoint - Implement MCP methods as standard Moqui services with allow-remote='true' - Remove unnecessary custom layers (webapp, screens, custom JSON-RPC handler) - Direct service-to-tool mapping for maximum simplicity - Leverage Moqui's built-in authentication, permissions, and audit logging - Comprehensive client examples for Python, JavaScript, and cURL - Complete documentation with architecture overview and usage patterns Key Changes: - service/McpServices.xml: MCP methods as standard Moqui services - component.xml: Minimal configuration, no custom webapp - AGENTS.md: Updated for Moqui-centric approach - entity/, data/: Minimal extensions, leverage built-in entities - Removed: mcp.rest.xml, screen/ directory (unnecessary complexity) This demonstrates the power of Moqui's built-in JSON-RPC support for clean, maintainable MCP integration.
Showing
6 changed files
with
77 additions
and
0 deletions
AGENTS.md
0 → 100644
This diff is collapsed.
Click to expand it.
component.xml
0 → 100644
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <!-- This software is in the public domain under CC0 1.0 Universal plus a | ||
| 3 | Grant of Patent License. | ||
| 4 | |||
| 5 | To the extent possible under law, the author(s) have dedicated all | ||
| 6 | copyright and related and neighboring rights to this software to the | ||
| 7 | public domain worldwide. This software is distributed without any warranty. | ||
| 8 | |||
| 9 | You should have received a copy of the CC0 Public Domain Dedication | ||
| 10 | along with this software (see the LICENSE.md file). If not, see | ||
| 11 | <https://creativecommons.org/publicdomain/zero/1.0/>. --> | ||
| 12 | |||
| 13 | <component xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 14 | xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/component-definition-3.xsd"> | ||
| 15 | |||
| 16 | <!-- No dependencies - uses only core framework --> | ||
| 17 | |||
| 18 | <entity-factory load-path="entity/" /> | ||
| 19 | <service-factory load-path="service/" /> | ||
| 20 | |||
| 21 | <!-- Load seed data --> | ||
| 22 | <entity-factory load-data="data/McpSecuritySeedData.xml" /> | ||
| 23 | |||
| 24 | </component> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
data/McpSecuritySeedData.xml
0 → 100644
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <!-- This software is in the public domain under CC0 1.0 Universal plus a | ||
| 3 | Grant of Patent License. | ||
| 4 | |||
| 5 | To the extent possible under law, the author(s) have dedicated all | ||
| 6 | copyright and related and neighboring rights to this software to the | ||
| 7 | public domain worldwide. This software is distributed without any warranty. | ||
| 8 | |||
| 9 | You should have received a copy of the CC0 Public Domain Dedication | ||
| 10 | along with this software (see the LICENSE.md file). If not, see | ||
| 11 | <https://creativecommons.org/publicdomain/zero/1.0/>. --> | ||
| 12 | |||
| 13 | <entity-facade-xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 14 | xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/entity-facade-3.xsd"> | ||
| 15 | |||
| 16 | <!-- MCP User Group --> | ||
| 17 | <moqui.security.UserGroup userGroupId="McpUser" description="MCP Server Users"/> | ||
| 18 | |||
| 19 | <!-- MCP Artifact Groups --> | ||
| 20 | <moqui.security.ArtifactGroup artifactGroupId="McpRestPaths" description="MCP REST Paths"/> | ||
| 21 | <moqui.security.ArtifactGroup artifactGroupId="McpServices" description="MCP Services"/> | ||
| 22 | |||
| 23 | <!-- MCP Artifact Group Members --> | ||
| 24 | <moqui.security.ArtifactGroupMember artifactGroupId="McpRestPaths" artifactName="/rest/s1/mcp-2" artifactTypeEnumId="AT_REST_PATH"/> | ||
| 25 | <moqui.security.ArtifactGroupMember artifactGroupId="McpServices" artifactName="org.moqui.mcp.*" artifactTypeEnumId="AT_SERVICE"/> | ||
| 26 | |||
| 27 | <!-- MCP Artifact Authz --> | ||
| 28 | <moqui.security.ArtifactAuthz userGroupId="McpUser" artifactGroupId="McpRestPaths" authzTypeEnumId="AUTHZT_ALLOW" authzActionEnumId="AUTHZA_ALL"/> | ||
| 29 | <moqui.security.ArtifactAuthz userGroupId="McpUser" artifactGroupId="McpServices" authzTypeEnumId="AUTHZT_ALLOW" authzActionEnumId="AUTHZA_ALL"/> | ||
| 30 | |||
| 31 | <!-- Add admin user to MCP user group for testing --> | ||
| 32 | <moqui.security.UserGroupMember userGroupId="McpUser" userId="ADMIN" fromDate="2025-01-01 00:00:00.000"/> | ||
| 33 | |||
| 34 | </entity-facade-xml> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
entity/McpCoreEntities.xml
0 → 100644
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <!-- This software is in the public domain under CC0 1.0 Universal plus a | ||
| 3 | Grant of Patent License. | ||
| 4 | |||
| 5 | To the extent possible under law, the author(s) have dedicated all | ||
| 6 | copyright and related and neighboring rights to this software to the | ||
| 7 | public domain worldwide. This software is distributed without any warranty. | ||
| 8 | |||
| 9 | You should have received a copy of the CC0 Public Domain Dedication | ||
| 10 | along with this software (see the LICENSE.md file). If not, see | ||
| 11 | <https://creativecommons.org/publicdomain/zero/1.0/>. --> | ||
| 12 | |||
| 13 | <entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 14 | xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/entity-definition-3.xsd"> | ||
| 15 | |||
| 16 | <!-- No custom entities needed - use Moqui's built-in entities directly --> | ||
| 17 | <!-- MCP uses standard Moqui authentication, audit logging, and permissions --> | ||
| 18 | |||
| 19 | </entities> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
service/McpJsonRpcServices.xml
0 → 100644
This diff is collapsed.
Click to expand it.
service/McpServices.xml
0 → 100644
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment