{
  "server": {
    "name": "OHLCX",
    "version": "1.0.0",
    "description": "OHLCX MCP server: trading platform tools for strategies, signals, markets, sectors, news, conditions, knowledge base, and user management.",
    "instructions": "OHLCX is a trading platform: dashboard, orders, positions, strategies, signals, watchlist, and market data. Tools expose the user's strategies, signals, markets, tickers, sectors, news, conditions, and knowledge base. Prompts provide user context, product terminology (TSP, OCO, TRIM, order types), and support content from the knowledge base. When the user is authenticated, prefer using tools to fetch fresh data before answering.",
    "transports": {
      "web": "/mcp/ohlcx",
      "stdio": "php artisan mcp:start ohlcx"
    },
    "auth": "Sanctum (web); stdio may run unauthenticated."
  },
  "prompts": [
    { "name": "user-info", "description": "Current user summary (authenticated MCP session only)" },
    { "name": "trading-terminology", "description": "TSP, OCO, TRIM, order types" },
    { "name": "support-knowledge-base", "description": "Answer support questions using KB" }
  ],
  "tools": [
    { "name": "ping", "descriptor": "ping.json", "admin_only": false, "notes": "Health check; no args." },
    { "name": "run-support-agent", "descriptor": "run-support-agent.json", "admin_only": false, "notes": "Laravel AI support agent (KB tools only); triggers LLM." },
    { "name": "run-trading-agent", "descriptor": "run-trading-agent.json", "admin_only": false, "notes": "Laravel AI trading assistant; authenticated MCP only; triggers LLM." },
    { "name": "get-user", "descriptor": "get-user.json", "admin_only": true, "notes": "Current user or optional user_id for another user." },
    { "name": "list-users", "descriptor": "list-users.json", "admin_only": true, "notes": "Search, pagination." },
    { "name": "set-user-admin", "descriptor": "set-user-admin.json", "admin_only": true, "notes": "Set/clear is_admin." },
    { "name": "update-user", "descriptor": "update-user.json", "admin_only": true, "notes": "Update name, email, is_admin, email_verified." },
    { "name": "add-user", "descriptor": "add-user.json", "admin_only": true, "notes": "Create user." },
    { "name": "delete-user", "descriptor": "delete-user.json", "admin_only": true, "notes": "Delete by ID; cannot delete self." },
    { "name": "search-knowledge-base", "descriptor": "search-knowledge-base.json", "admin_only": false, "notes": "Filter by area, q; uses DB. Available to all." },
    { "name": "get-knowledge-base-article", "descriptor": "get-knowledge-base-article.json", "admin_only": false, "notes": "Article by slug; uses DB. Available to all." },
    { "name": "create-knowledge-base-article", "descriptor": "create-knowledge-base-article.json", "admin_only": true, "notes": "Create KB article." },
    { "name": "update-knowledge-base-article", "descriptor": "update-knowledge-base-article.json", "admin_only": true, "notes": "Update KB article by id." },
    { "name": "delete-knowledge-base-article", "descriptor": "delete-knowledge-base-article.json", "admin_only": true, "notes": "Delete KB article by id." },
    { "name": "list-accounts", "descriptor": "list-accounts.json", "admin_only": false, "notes": "User's brokerage accounts." },
    { "name": "get-account-balance", "descriptor": "get-account-balance.json", "admin_only": false, "notes": "Account balance by account_id." },
    { "name": "get-account-growth", "descriptor": "get-account-growth.json", "admin_only": false, "notes": "Account growth by account_id." },
    { "name": "get-account-pnl", "descriptor": "get-account-pnl.json", "admin_only": false, "notes": "Account PnL by account_id." },
    { "name": "list-activities", "descriptor": "list-activities.json", "admin_only": false, "notes": "User's activity feed." },
    { "name": "log-activity", "descriptor": "log-activity.json", "admin_only": false, "notes": "Log activity." },
    { "name": "delete-activity", "descriptor": "delete-activity.json", "admin_only": false, "notes": "Delete activity by id." },
    { "name": "get-analysis", "descriptor": "get-analysis.json", "admin_only": false, "notes": "User's AI analysis data." },
    { "name": "list-strategies", "descriptor": "list-strategies.json", "admin_only": false, "notes": "User's strategies." },
    { "name": "get-strategy", "descriptor": "get-strategy.json", "admin_only": false, "notes": "Strategy by id." },
    { "name": "create-strategy", "descriptor": "create-strategy.json", "admin_only": false, "notes": "Create strategy." },
    { "name": "update-strategy", "descriptor": "update-strategy.json", "admin_only": false, "notes": "Update strategy by id." },
    { "name": "delete-strategy", "descriptor": "delete-strategy.json", "admin_only": false, "notes": "Delete strategy by id." },
    { "name": "search-strategies", "descriptor": "search-strategies.json", "admin_only": false, "notes": "Search strategies by symbol." },
    { "name": "get-strategy-activities", "descriptor": "get-strategy-activities.json", "admin_only": false, "notes": "Strategy activities by strategy_id." },
    { "name": "get-strategy-conditions", "descriptor": "get-strategy-conditions.json", "admin_only": false, "notes": "Strategy conditions by strategy_id." },
    { "name": "deploy-strategy", "descriptor": "deploy-strategy.json", "admin_only": false, "notes": "Deploy strategy." },
    { "name": "duplicate-strategy", "descriptor": "duplicate-strategy.json", "admin_only": false, "notes": "Duplicate strategy." },
    { "name": "clear-strategy-conditions-readings", "descriptor": "clear-strategy-conditions-readings.json", "admin_only": false, "notes": "Clear condition readings for strategy." },
    { "name": "list-signals", "descriptor": "list-signals.json", "admin_only": false, "notes": "User's signals." },
    { "name": "list-markets", "descriptor": "list-markets.json", "admin_only": false, "notes": "Markets; optional market_id." },
    { "name": "list-sectors", "descriptor": "list-sectors.json", "admin_only": false, "notes": "Sectors from proxied API; optional per_page." },
    { "name": "get-sector", "descriptor": "get-sector.json", "admin_only": false, "notes": "Sector by sector_id." },
    { "name": "get-ticker", "descriptor": "get-ticker.json", "admin_only": false, "notes": "Ticker by symbol or market_id." },
    { "name": "get-market-calendar", "descriptor": "get-market-calendar.json", "admin_only": false, "notes": "Market calendar." },
    { "name": "get-market-balance", "descriptor": "get-market-balance.json", "admin_only": false, "notes": "Market balance; optional filters." },
    { "name": "get-sector-balance", "descriptor": "get-sector-balance.json", "admin_only": false, "notes": "Sector balance; optional filters." },
    { "name": "list-news", "descriptor": "list-news.json", "admin_only": false, "notes": "Paginated news." },
    { "name": "get-news", "descriptor": "get-news.json", "admin_only": false, "notes": "News item by id." },
    { "name": "list-crypto-news", "descriptor": "list-crypto-news.json", "admin_only": false, "notes": "Paginated crypto news." },
    { "name": "list-popular-news", "descriptor": "list-popular-news.json", "admin_only": false, "notes": "Paginated popular news." },
    { "name": "list-conditions", "descriptor": "list-conditions.json", "admin_only": false, "notes": "All conditions." },
    { "name": "get-condition", "descriptor": "get-condition.json", "admin_only": false, "notes": "Condition by id." },
    { "name": "create-condition", "descriptor": "create-condition.json", "admin_only": false, "notes": "Create condition." },
    { "name": "update-condition", "descriptor": "update-condition.json", "admin_only": false, "notes": "Update condition by id." },
    { "name": "delete-condition", "descriptor": "delete-condition.json", "admin_only": false, "notes": "Delete condition by id." },
    { "name": "submit-contact-form", "descriptor": "submit-contact-form.json", "admin_only": false, "notes": "Submit contact form." },
    { "name": "report-issue", "descriptor": "report-issue.json", "admin_only": false, "notes": "Report issue." },
    { "name": "submit-support-request", "descriptor": "submit-support-request.json", "admin_only": false, "notes": "Submit support request." },
    { "name": "get-credits", "descriptor": "get-credits.json", "admin_only": false, "notes": "User's credit balance." },
    { "name": "get-transaction-history", "descriptor": "get-transaction-history.json", "admin_only": false, "notes": "User's billing history." },
    { "name": "get-sessions", "descriptor": "get-sessions.json", "admin_only": false, "notes": "User's sessions." },
    { "name": "update-profile", "descriptor": "update-profile.json", "admin_only": false, "notes": "Update profile." },
    { "name": "update-password", "descriptor": "update-password.json", "admin_only": false, "notes": "Update password." },
    { "name": "delete-profile-photo", "descriptor": "delete-profile-photo.json", "admin_only": false, "notes": "Delete profile photo." },
    { "name": "get-onboarding", "descriptor": "get-onboarding.json", "admin_only": false, "notes": "User onboarding state." },
    { "name": "complete-onboarding", "descriptor": "complete-onboarding.json", "admin_only": false, "notes": "Submit onboarding." },
    { "name": "get-preferences", "descriptor": "get-preferences.json", "admin_only": false, "notes": "User preferences." },
    { "name": "update-preferences", "descriptor": "update-preferences.json", "admin_only": false, "notes": "Update preferences." },
    { "name": "get-settings", "descriptor": "get-settings.json", "admin_only": false, "notes": "User settings." },
    { "name": "save-settings", "descriptor": "save-settings.json", "admin_only": false, "notes": "Save settings." },
    { "name": "get-group", "descriptor": "get-group.json", "admin_only": false, "notes": "Trading room group by id." },
    { "name": "create-group", "descriptor": "create-group.json", "admin_only": false, "notes": "Create group." },
    { "name": "update-group", "descriptor": "update-group.json", "admin_only": false, "notes": "Update group." },
    { "name": "delete-group", "descriptor": "delete-group.json", "admin_only": false, "notes": "Delete group." },
    { "name": "invite-to-group", "descriptor": "invite-to-group.json", "admin_only": false, "notes": "Invite to group." },
    { "name": "join-group", "descriptor": "join-group.json", "admin_only": false, "notes": "Join group." },
    { "name": "leave-group", "descriptor": "leave-group.json", "admin_only": false, "notes": "Leave group." },
    { "name": "get-group-status", "descriptor": "get-group-status.json", "admin_only": false, "notes": "Group status." },
    { "name": "list-invites", "descriptor": "list-invites.json", "admin_only": false, "notes": "User's invites." },
    { "name": "send-invite", "descriptor": "send-invite.json", "admin_only": false, "notes": "Send invite." },
    { "name": "accept-invite", "descriptor": "accept-invite.json", "admin_only": false, "notes": "Accept invite." },
    { "name": "respond-join-request", "descriptor": "respond-join-request.json", "admin_only": false, "notes": "Respond to join request." },
    { "name": "send-message", "descriptor": "send-message.json", "admin_only": false, "notes": "Send message in room." },
    { "name": "get-older-messages", "descriptor": "get-older-messages.json", "admin_only": false, "notes": "Older messages before message_id." },
    { "name": "delete-message", "descriptor": "delete-message.json", "admin_only": false, "notes": "Delete message." },
    { "name": "get-sidebar-conversations", "descriptor": "get-sidebar-conversations.json", "admin_only": false, "notes": "Sidebar conversation list." },
    { "name": "get-user-billing", "descriptor": "get-user-billing.json", "admin_only": true, "notes": "User billing (admin)." },
    { "name": "adjust-user-billing", "descriptor": "adjust-user-billing.json", "admin_only": true, "notes": "Adjust user billing (admin)." },
    { "name": "set-user-billing-package", "descriptor": "set-user-billing-package.json", "admin_only": true, "notes": "Set user billing package (admin)." },
    { "name": "block-unblock-user", "descriptor": "block-unblock-user.json", "admin_only": true, "notes": "Block/unblock user (admin)." },
    { "name": "change-user-role", "descriptor": "change-user-role.json", "admin_only": true, "notes": "Change user role (admin)." }
  ]
}
