Skip to content

Add auto-selection for MCP default configuration service to streamline installation #7621

@jackdark425

Description

@jackdark425

What specific problem does this solve?

Affected Users: All new users and existing users deploying new MCP instances

Current Behavior: Users must manually search for, select, and configure MCP services

Expected Behavior: Default configuration should auto-select and pre-configure compatible MCP services based on project requirements

Impacts:

New users spend 5-10 minutes researching proper configuration options
Projects often misconfigure services due to lack of expertise
Increased support tickets for deploying basic configurations
Slows down initial setup process by requiring additional manual steps

Additional context (optional)

Potential implementation reference

mcp_settings.json contains example configuration mapping rules

(MCP stands for Multi-Codebase Platform - our internal architecture)

example:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"-e",
"GITHUB_TOOLSETS",
"-e",
"GITHUB_READ_ONLY",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${env:GITHUB_PERSONAL_ACCESS_TOKEN}",
"GITHUB_TOOLSETS": "",
"GITHUB_READ_ONLY": ""
},
"alwaysAllow": [
"add_comment_to_pending_review",
"add_issue_comment",
"add_sub_issue",
"assign_copilot_to_issue",
"cancel_workflow_run",
"create_and_submit_pull_request_review",
"create_branch",
"create_gist",
"create_issue",
"create_or_update_file",
"create_pending_pull_request_review",
"create_pull_request",
"create_repository",
"delete_file",
"delete_pending_pull_request_review",
"delete_workflow_run_logs",
"dismiss_notification",
"download_workflow_run_artifact",
"fork_repository",
"get_code_scanning_alert",
"get_commit",
"get_dependabot_alert",
"get_discussion",
"get_discussion_comments",
"get_file_contents",
"get_global_security_advisory",
"get_issue",
"get_issue_comments",
"get_job_logs",
"get_latest_release",
"get_me",
"get_notification_details",
"get_pull_request",
"get_pull_request_comments",
"get_pull_request_diff",
"get_pull_request_files",
"get_pull_request_reviews",
"get_pull_request_status",
"get_release_by_tag",
"get_secret_scanning_alert",
"get_tag",
"get_team_members",
"get_teams",
"get_workflow_run",
"get_workflow_run_logs",
"get_workflow_run_usage",
"list_branches",
"list_code_scanning_alerts",
"list_commits",
"list_dependabot_alerts",
"list_discussion_categories",
"list_discussions",
"list_gists",
"list_global_security_advisories",
"list_issue_types",
"list_issues",
"list_notifications",
"list_org_repository_security_advisories",
"list_pull_requests",
"list_releases",
"list_repository_security_advisories",
"list_secret_scanning_alerts",
"list_sub_issues",
"list_tags",
"list_workflow_jobs",
"list_workflow_run_artifacts",
"list_workflow_runs",
"list_workflows",
"manage_notification_subscription",
"manage_repository_notification_subscription",
"mark_all_notifications_read",
"merge_pull_request",
"push_files",
"remove_sub_issue",
"reprioritize_sub_issue",
"request_copilot_review",
"rerun_failed_jobs",
"rerun_workflow_run",
"run_workflow",
"search_code",
"search_issues",
"search_orgs",
"search_pull_requests",
"search_repositories",
"search_users",
"submit_pending_pull_request_review",
"update_gist",
"update_issue",
"update_pull_request",
"update_pull_request_branch",
"get_file_contents</tool name>\n\n{\n "owner": "agentscope-ai",\n "repo": "agentscope-runtime",\n "path": "pyproject.toml"\n}\n\n</use_mcp_tool>"
],
"disabled": true
},
"mdtoword": {
"type": "streamable-http",
"url": "https://mdtoword-service.zeabur.app/mcp",
"disabled": true,
"alwaysAllow": [
"markdown_to_docx"
]
},
"mcp-server-chart-private": {
"type": "streamable-http",
"url": "https://mcp-server-chart-private.zeabur.app/mcp",
"disabled": true,
"alwaysAllow": [
"generate_area_chart",
"generate_bar_chart",
"generate_boxplot_chart",
"generate_column_chart",
"generate_district_map",
"generate_dual_axes_chart",
"generate_fishbone_diagram",
"generate_flow_diagram",
"generate_funnel_chart",
"generate_histogram_chart",
"generate_line_chart",
"generate_liquid_chart",
"generate_mind_map",
"generate_network_graph",
"generate_organization_chart",
"generate_word_cloud_chart",
"generate_violin_chart",
"generate_venn_chart",
"generate_treemap_chart",
"generate_scatter_chart",
"generate_path_map",
"generate_pie_chart",
"generate_pin_map",
"generate_radar_chart",
"generate_sankey_chart"
]
},
"mcp-octagon": {
"url": "https://glama.ai/mcp/instances/oylrur167r/sse?token=d1d06177-f1c3-4b11-aef7-511a84fc6e48",
"disabled": true,
"alwaysAllow": [
"octagon-sec-agent",
"octagon-transcripts-agent",
"octagon-financials-agent",
"octagon-stock-data-agent",
"octagon-companies-agent",
"octagon-funding-agent",
"octagon-deals-agent",
"octagon-investors-agent",
"octagon-scraper-agent",
"octagon-deep-research-agent",
"octagon-debts-agent",
"list_tools"
]
},
"neo4j-memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEO4J_URL",
"-e",
"NEO4J_USERNAME",
"-e",
"NEO4J_PASSWORD",
"mcp/neo4j-memory"
],
"env": {
"NEO4J_URL": "bolt://host.docker.internal:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "password"
},
"alwaysAllow": [
"read_graph",
"create_entities",
"create_relations",
"add_observations",
"delete_entities",
"delete_observations",
"delete_relations",
"find_nodes",
"search_nodes",
"open_nodes"
],
"disabled": true
},
"neo4j-cypher": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEO4J_URL",
"-e",
"NEO4J_USERNAME",
"-e",
"NEO4J_PASSWORD",
"mcp/neo4j-cypher"
],
"env": {
"NEO4J_URL": "bolt://host.docker.internal:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "password"
},
"alwaysAllow": [
"get_neo4j_schema",
"read_neo4j_cypher",
"write_neo4j_cypher"
],
"disabled": true
},
"amap-amap-sse": {
"url": "https://mcp.amap.com/sse?key=383c916fe300fe9de85dda487f687a4e",
"disabled": true,
"alwaysAllow": [
"maps_direction_bicycling",
"maps_direction_driving",
"maps_direction_transit_integrated",
"maps_direction_walking",
"maps_distance",
"maps_geo",
"maps_regeocode",
"maps_ip_location",
"maps_around_search",
"maps_search_detail",
"maps_text_search",
"maps_weather"
]
},
"markitdown-mcp": {
"type": "sse",
"description": "各种文件格式转换为markdown",
"isActive": true,
"url": "https://markitdown-mcp.zeabur.app/sse",
"alwaysAllow": [
"convert_to_markdown"
],
"disabled": true
},
"aigroup-aliyunoss-mcp": {
"command": "npx",
"args": [
"-y",
"aigroup-aliyunoss-mcp",
"--stdio"
],
"env": {
"OSS_ACCESS_KEY_ID": "${env:OSS_ACCESS_KEY_ID}",
"OSS_ACCESS_KEY_SECRET": "${env:OSS_ACCESS_KEY_SECRET}",
"OSS_BUCKET": "${env:OSS_BUCKET}",
"OSS_REGION": "${env:OSS_REGION}"
},
"alwaysAllow": [
"uploadFile",
"getObjectUrl",
"deleteObject",
"deleteMultipleObjects",
"listObjects",
"copyObject",
"getObjectMeta"
],
"disabled": true
},
"pdf-reader-mcp": {
"type": "sse",
"url": "https://mcp.api-inference.modelscope.net/def68044f38c4d/sse",
"alwaysAllow": [
"read_pdf"
],
"disabled": true
},
"excel": {
"command": "cmd",
"args": [
"/c",
"npx",
"--yes",
"@negokaz/excel-mcp-server"
],
"env": {
"EXCEL_MCP_PAGING_CELLS_LIMIT": "4000"
},
"alwaysAllow": [
"excel_copy_sheet",
"excel_create_table",
"excel_describe_sheets",
"excel_read_sheet",
"excel_screen_capture",
"excel_write_to_sheet"
],
"disabled": true
},
"wolfram-llm-mcp": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@smithery/cli@latest",
"run",
"@henryhawke/wolfram-llm-mcp",
"--key",
"db3aaaaa-e545-4827-a5da-5522b5846d10",
"--profile",
"rigid-falcon-8azq7x"
],
"alwaysAllow": [
"wolfram_query",
"wolfram_query_with_assumptions"
],
"disabled": true
},
"file-extractor-mcp": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@smithery/cli@latest",
"run",
"@dravidsajinraj-iex/file-extractor-mcp",
"--key",
"db3aaaaa-e545-4827-a5da-5522b5846d10",
"--profile",
"rigid-falcon-8azq7x"
],
"alwaysAllow": [
"extract_metadata",
"extract_file_content"
],
"disabled": true
},
"mcp-pandoc-omni": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@smithery/cli@latest",
"run",
"@Omniscience-Labs/mcp-pandoc-omni",
"--key",
"db3aaaaa-e545-4827-a5da-5522b5846d10"
],
"alwaysAllow": [
"convert-contents"
],
"disabled": true
},
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest",
"--browser=",
"--viewport-size="
],
"alwaysAllow": [
"browser_close",
"browser_resize",
"browser_console_messages",
"browser_handle_dialog",
"browser_evaluate",
"browser_file_upload",
"browser_install",
"browser_press_key",
"browser_navigate_back",
"browser_navigate_forward",
"browser_type",
"browser_network_requests",
"browser_take_screenshot",
"browser_snapshot",
"browser_navigate",
"browser_click",
"browser_drag",
"browser_hover",
"browser_select_option",
"browser_tab_list",
"browser_tab_new",
"browser_tab_select",
"browser_tab_close",
"browser_wait_for"
],
"disabled": true
},
"puppeteer": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
],
"disabled": true,
"alwaysAllow": [
"puppeteer_screenshot",
"puppeteer_click",
"puppeteer_fill",
"puppeteer_select",
"puppeteer_hover",
"puppeteer_evaluate"
]
},
"markmap": {
"command": "npx",
"args": [
"-y",
"@jinzcdev/markmap-mcp-server"
],
"env": {
"MARKMAP_DIR": "d:/bank/markmap-output"
},
"alwaysAllow": [
"generate_mind_map"
],
"disabled": true
},
"chrome-mcp-server": {
"type": "streamable-http",
"url": "http://127.0.0.1:12306/mcp",
"alwaysAllow": [
"get_windows_and_tabs",
"chrome_navigate",
"chrome_screenshot",
"chrome_close_tabs",
"chrome_go_back_or_forward",
"chrome_get_web_content",
"chrome_click_element",
"chrome_fill_or_select",
"chrome_get_interactive_elements",
"chrome_network_request",
"chrome_network_debugger_start",
"chrome_network_debugger_stop",
"chrome_network_capture_start",
"chrome_network_capture_stop",
"chrome_keyboard",
"chrome_history",
"chrome_bookmark_search",
"chrome_bookmark_add",
"chrome_bookmark_delete",
"search_tabs_content",
"chrome_inject_script",
"chrome_send_command_to_inject_script",
"chrome_console"
],
"disabled": true
},
"windows-mcp": {
"command": "uv",
"args": [
"--directory",
"D:\Windows-MCP",
"run",
"main.py"
],
"alwaysAllow": [
"Launch-Tool",
"Powershell-Tool",
"State-Tool",
"Clipboard-Tool",
"Click-Tool",
"Type-Tool",
"Resize-Tool",
"Switch-Tool",
"Scroll-Tool",
"Drag-Tool",
"Move-Tool",
"Shortcut-Tool",
"Scrape-Tool",
"Wait-Tool",
"Key-Tool"
],
"disabled": true
},
"aigroup-video-mcp": {
"command": "python",
"args": [
"-m",
"aigroup_video_mcp.main",
"serve"
],
"env": {
"DASHSCOPE_API_KEY": "${env:DASHSCOPE_API_KEY}"
},
"alwaysAllow": [
"analyze_video",
"summarize_video",
"analyze_video_scenes",
"analyze_video_custom",
"validate_video_source"
],
"disabled": true
},
"aigroup-openai-mcp": {
"command": "npx",
"args": [
"-y",
"aigroup-openai-mcp"
],
"alwaysAllow": [
"Enterprise Insight Pro",
"FinWise Sprite",
"ProfitPulse"
],
"disabled": true,
"timeout": 600
}
}
}

Roo Code Task Links (Optional)

No response

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear impact and context

Interested in implementing this?

  • Yes, I'd like to help implement this feature

Implementation requirements

  • I understand this needs approval before implementation begins

How should this be solved? (REQUIRED if contributing, optional otherwise)

mcp_settings.json

Change Details:

Backend service analysis endpoint detect compatible MCP configurations
Add "Use Recommended" toggle in configuration selector UI
Create configuration mapping service using mcp_settings.json schema
Modify installation process to use configuration mapping
User Interaction Flow:

User uploads codebase
System analyzes requirements.txt, docker-compose.yml, etc.
Detects required services (PostgreSQL, Redis, etc.)
Pre-selects optimal MCP configuration option
Shows recommendation reasons in tooltip
New Behavior:

Option to "Accept Recommended Configuration" appears during setup
Configuration selector shows confidence score with each option
Selected configuration automatically populates environment variables
Installation time reduced by 40-60% for standard projects

How will we know it works? (Acceptance Criteria - REQUIRED if contributing, optional otherwise)

No response

Technical considerations (REQUIRED if contributing, optional otherwise)

Frontend/UI:

Add configuration confidence indicator
Need responsive tooltip implementation for explanation text

Trade-offs and risks (REQUIRED if contributing, optional otherwise)

Alternatives Considered:

Manual configuration wizard (requires user input)
Static default configuration (less adaptive)
External plugin-based detection (increases maintenance)
Chosen Approach Justification:

JSON-based mapping provides maintainability
Built-in detection avoids external dependencies
Fallback to manual configuration ensures flexibility
Risks:

May confuse advanced users with abstraction layers
Configuration accuracy depends on comprehensiveness of mcp_settings.json
Existing projects might expect manual configuration workflow
Needs fallback when automatic selection fails/confident detection
Edge Cases:

Requirement conflicts between detected services
Custom dependencies not in existing configuration mapping
Legacy projects needing migration path
Empty or malformed configuration files

Metadata

Metadata

Assignees

Labels

Issue - In ProgressSomeone is actively working on this. Should link to a PR soon.enhancementNew feature or requestproposal

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions