File Inventory
This is the real feature surface you need to account for when exporting MCP into another project.
Core Shared Runtime
| File or area | Role | Export status |
|---|---|---|
app/middleware/mcp/base_rack_app.rb |
Shared Rack transport, auth entry point, rate limiting, transport reuse | Copy and adapt |
app/models/mcp/token.rb |
Token scopes, digest lookup, permissions, revocation, regeneration | Copy and adapt |
app/models/mcp/activity_log.rb |
Tool call audit trail | Copy and adapt |
app/models/mcp/tools/concerns/formattable.rb |
Shared response helpers | Copy almost as-is |
app/models/mcp/tools/concerns/listable.rb |
Pagination and text formatting for list tools | Copy almost as-is |
app/models/mcp/tools/concerns/approvable.rb |
Shared approve and reject flow | Optional; depends on your domain |
app/models/mcp/tools/concerns/tool_metadata.rb |
Permission DSL for domain and action | Copy as-is |
Organization MCP Runtime
| File or area | Role | Export status |
|---|---|---|
app/middleware/mcp/rack_app.rb |
Org token authorization and request lifecycle hooks | Copy and adapt |
app/models/mcp/organization_context.rb |
Thread-safe tenant context object | Copy and adapt |
app/models/mcp/base_tool.rb |
Shared base for tenant-scoped tools | Copy and adapt |
app/models/mcp/server_builder.rb |
Registers org tool namespaces and filters them by permissions | Copy and adapt |
app/models/mcp/tools/** |
Actual org-facing tools | Rebuild per target project |
Admin MCP Runtime
| File or area | Role | Export status |
|---|---|---|
app/middleware/mcp/admin_rack_app.rb |
Admin token authorization | Optional |
app/models/mcp/admin/base_tool.rb |
Base class for platform-wide tools | Optional |
app/models/mcp/admin/server_builder.rb |
Admin tool registration and filtering | Optional |
app/models/mcp/admin/tools/** |
Admin analytics and CRM tools | Rebuild per target project |
Token Management Surface
| File or area | Role | Export status |
|---|---|---|
app/controllers/organizations/marketplace/mcp_settings_controller.rb |
Org MCP settings page and activity tab | Optional but recommended |
app/controllers/organizations/marketplace/mcp_tokens_controller.rb |
Org token create, update, revoke, regenerate | Optional but recommended |
app/controllers/admin/mcp_settings_controller.rb |
Admin token CRUD and activity list | Optional |
app/policies/organizations/marketplace/mcp_settings_policy.rb |
Org policy guard | Adapt |
app/policies/organizations/marketplace/mcp_tokens_policy.rb |
Org token CRUD policy guard | Adapt |
app/views/organizations/marketplace/mcp_settings/** |
Org MCP settings UI | Optional |
app/views/organizations/marketplace/mcp_tokens/** |
Org token form and permission toggles | Optional |
app/views/admin/mcp_settings/** |
Admin settings and activity UI | Optional |
Routes And Dependency Hooks
| File or area | Role | Export status |
|---|---|---|
config/routes.rb |
Mounts /mcp and /admin/mcp, plus token management routes |
Copy and adapt |
Gemfile |
Adds gem "mcp", "~> 0.10.0" |
Required |
app/models/current.rb |
Holds mcp_request flag in this repository |
Optional but useful |
Database Contract
In this repository, the final mcp_tokens contract is broader than the first migration because the model later gained scope, token_prefix, and optional organization support.
For a fresh export, build the target project around the current model contract rather than replaying this repo's migration history.
Recommended final columns for mcp_tokens
organization_id, nullable if admin tokens are supportedname, non-nulltoken_digest, non-null, uniquetoken_prefix, nullable but recommendedpermissions, JSON, non-null, default{}scope, non-null, defaultorganizationlast_used_atrevoked_at- timestamps
Recommended final columns for mcp_activity_logs
mcp_token_id, non-nullorganization_id, nullable if admin tokens are supportedtool_name, non-nulldomain, non-nullaction_type, non-nullarguments, JSONresult_summary, JSONstatus_code- timestamps
Live Tool Inventory Snapshot
Organization MCP domains
listingsdocumentationformsreviewsleadspipelinesanalyticsai_activity
Current live code exposes 28 org tools.
Admin MCP domains
platform_statsorganizationslistings_statsleads_statsdocumentation_statssubmissions_statscrm
Current live code exposes 16 admin tools.
Must-Copy Minimum Set
If you want a minimal but working export, start with these:
Gemfiledependency onmcpapp/middleware/mcp/base_rack_app.rbapp/middleware/mcp/rack_app.rbapp/models/mcp/token.rbapp/models/mcp/activity_log.rbapp/models/mcp/organization_context.rbapp/models/mcp/base_tool.rbapp/models/mcp/server_builder.rbapp/models/mcp/tools/concerns/*- target-specific tool classes
- routes that mount the Rack app
Everything else can be layered in after the endpoint already works.