├── .github └── workflows │ └── secret-scan.yml ├── .gitignore ├── .gitleaks.toml ├── LICENSE ├── README.md ├── app └── general_client │ ├── README.md │ ├── assets │ └── image.png │ ├── client.py │ ├── mcp_config.json │ └── requirements.txt └── server ├── mcp_server_apmplus ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── requirements.txt ├── run.sh ├── src │ └── mcp_server_apmplus │ │ ├── __init__.py │ │ ├── api.py │ │ ├── config.py │ │ ├── main.py │ │ ├── model.py │ │ └── server.py └── uv.lock ├── mcp_server_ark └── README.md ├── mcp_server_askecho ├── .python-version ├── README.md ├── pyproject.toml ├── src │ └── mcp_server_askecho │ │ ├── __init__.py │ │ ├── api.py │ │ ├── config.py │ │ ├── model.py │ │ └── server.py └── uv.lock ├── mcp_server_billing ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_billing │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── billing.json │ │ └── cfg.yaml │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_bytehouse ├── LICENSE ├── README.md ├── README_zh.md ├── mcp_bytehouse │ ├── __init__.py │ ├── knowledge │ │ ├── cnch_merge_tree.md │ │ ├── cnch_unique_merge_tree.md │ │ ├── distributed.md │ │ ├── ha_merge_tree.md │ │ └── ha_unique_merge_tree.md │ ├── main.py │ ├── mcp_env.py │ └── mcp_server.py ├── pyproject.toml ├── requirements.txt └── uv.lock ├── mcp_server_cdn ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── CDN │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ └── utils │ │ ├── __init__.py │ │ └── response.py └── uv.lock ├── mcp_server_certificate_center ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ ├── certificate_service │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py │ └── utils │ │ ├── __init__.py │ │ └── response.py └── uv.lock ├── mcp_server_cloud_assistant ├── .python-version ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_cloud_assistant │ │ ├── __init__.py │ │ ├── config.py │ │ └── server.py └── uv.lock ├── mcp_server_cloud_trail ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_cloud_trail │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── cloud_trail.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_cloudidentity ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_cloudidentity │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── cloudidentity.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_cloudmonitor ├── README.md ├── README_zh.md ├── mcp.json ├── pyproject.toml ├── requirements.txt ├── run.sh ├── src │ └── mcp_server_cloudmonitor │ │ ├── __init__.py │ │ ├── client.py │ │ ├── models │ │ ├── __init__.py │ │ └── request.py │ │ ├── server.py │ │ ├── server_test.py │ │ ├── sse.py │ │ ├── stdio.py │ │ └── utils │ │ ├── __init__.py │ │ └── top.py └── uv.lock ├── mcp_server_cloudsearch ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_cloudsearch │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── client.py │ │ ├── server.py │ │ └── tools │ │ ├── instance_info.py │ │ └── resource_info.py └── uv.lock ├── mcp_server_computer_use ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ └── mcp_server_computer_use │ │ ├── __init__.py │ │ ├── common │ │ ├── __init__.py │ │ ├── client.py │ │ ├── config.py │ │ ├── errors.py │ │ └── logs.py │ │ ├── main.py │ │ └── tools │ │ ├── __init__.py │ │ └── computer.py └── uv.lock ├── mcp_server_dcdn ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ └── dcdn │ │ ├── __init__.py │ │ ├── api │ │ ├── __init__.py │ │ ├── api.py │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py └── uv.lock ├── mcp_server_domain_service ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ ├── domain_openapi │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py │ └── utils │ │ ├── __init__.py │ │ └── response.py └── uv.lock ├── mcp_server_ebs ├── .python-version ├── README.md ├── pyproject.toml ├── requirements.txt ├── run.sh └── src │ └── mcp_server_ebs │ ├── __init__.py │ ├── config.py │ └── server.py ├── mcp_server_ecs ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ └── mcp_server_ecs │ │ ├── __init__.py │ │ ├── common │ │ ├── __init__.py │ │ ├── auth.py │ │ ├── client.py │ │ ├── config.py │ │ ├── errors.py │ │ └── logs.py │ │ ├── main.py │ │ ├── server.py │ │ └── tools │ │ ├── __init__.py │ │ ├── event.py │ │ ├── instance.py │ │ └── region.py └── uv.lock ├── mcp_server_enterprise ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ └── trademark │ │ ├── __init__.py │ │ ├── api │ │ ├── __init__.py │ │ ├── api.py │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py └── uv.lock ├── mcp_server_ga ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ └── ga │ │ ├── __init__.py │ │ ├── api │ │ ├── __init__.py │ │ ├── api.py │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py └── uv.lock ├── mcp_server_iam ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_iam │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── iam.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_iga ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ ├── dcdn │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py │ └── utils │ │ ├── __init__.py │ │ └── response.py └── uv.lock ├── mcp_server_knowledgebase ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ └── mcp_server_knowledgebase │ │ ├── __init__.py │ │ ├── common │ │ ├── __init__.py │ │ └── auth.py │ │ ├── config.py │ │ └── server.py └── uv.lock ├── mcp_server_las ├── .gitignore ├── README.md ├── las-logo.svg ├── poetry.lock ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_las │ │ ├── __init__.py │ │ ├── config.py │ │ ├── las_service.py │ │ ├── server.py │ │ ├── serverRemote.py │ │ └── serverSse.py └── uv.lock ├── mcp_server_live ├── .gitignore ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ ├── live │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py │ └── utils │ │ ├── __init__.py │ │ └── response.py └── uv.lock ├── mcp_server_mcdn ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ └── mcdn │ │ ├── __init__.py │ │ ├── api │ │ ├── __init__.py │ │ ├── api.py │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py └── uv.lock ├── mcp_server_mobile_use ├── .gitignore ├── Dockerfile ├── README.md ├── README_en.md ├── build.sh ├── client │ └── mobile_use_client │ │ ├── client.go │ │ └── client_test.go ├── cmd │ └── mobile_use_mcp │ │ └── main.go ├── go.mod ├── go.sum └── internal │ └── mobile_use │ ├── config │ └── config.go │ ├── consts │ └── consts.go │ ├── server │ └── server.go │ ├── service │ ├── acpe_model.go │ ├── option.go │ └── provider.go │ └── tool │ ├── autoinstall_app.go │ ├── base.go │ ├── close_app.go │ ├── key_event_back.go │ ├── key_event_home.go │ ├── key_event_menu.go │ ├── launch_app.go │ ├── list_app.go │ ├── screen_swipe.go │ ├── screen_tap.go │ ├── take_screenshot.go │ ├── terminate.go │ └── text_input.go ├── mcp_server_mongodb ├── .python-version ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_mongodb │ │ ├── __init__.py │ │ ├── resource │ │ ├── __init__.py │ │ └── mongo_resource.py │ │ └── server.py └── uv.lock ├── mcp_server_na ├── .python-version ├── README.md ├── pyproject.toml ├── src │ └── mcp_server_na │ │ ├── __init__.py │ │ ├── common │ │ ├── .env_example │ │ ├── __init__.py │ │ ├── client.py │ │ └── config.py │ │ ├── main.py │ │ └── server.py └── uv.lock ├── mcp_server_organization ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_organization │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── organization.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_project ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_project │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── project.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_rds_mysql ├── .python-version ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_rds_mysql │ │ ├── __init__.py │ │ ├── config.py │ │ └── server.py ├── static │ └── image │ │ └── rdsmysql.png └── uv.lock ├── mcp_server_resource_share ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_resource_share │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── resource_share.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_resourcecenter ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_resourcecenter │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── resourcecenter.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_sec_agent ├── Dockerfile ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_sec_agent │ │ ├── __init__.py │ │ ├── client │ │ ├── __init__.py │ │ ├── model.py │ │ ├── model_test.py │ │ └── sec_intelligent_client.py │ │ ├── config.py │ │ ├── const.py │ │ └── server.py └── uv.lock ├── mcp_server_sts ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_sts │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── sts.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_tag ├── README.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_tag │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── config │ │ ├── cfg.yaml │ │ └── tag.json │ │ ├── model.py │ │ ├── openapi.py │ │ ├── sdk_tool.py │ │ ├── server.py │ │ ├── utils.py │ │ └── variable.py └── uv.lock ├── mcp_server_tls ├── .env_example ├── .gitignore ├── README.md ├── README_zh.md ├── pyproject.toml ├── requirements.txt ├── run.sh ├── src │ └── mcp_server_tls │ │ ├── __init__.py │ │ ├── config.py │ │ ├── consts.py │ │ ├── main.py │ │ ├── reqeust.py │ │ ├── resources │ │ ├── __init__.py │ │ ├── log.py │ │ ├── project.py │ │ ├── text_analysis.py │ │ └── topic.py │ │ ├── server.py │ │ ├── tools │ │ ├── __init__.py │ │ ├── log.py │ │ ├── project.py │ │ ├── text_analysis.py │ │ └── topic.py │ │ └── utils.py └── uv.lock ├── mcp_server_tos ├── .env_example ├── .gitignore ├── .python-version ├── README.md ├── pyproject.toml ├── requirements.txt ├── run.sh ├── src │ └── mcp_server_tos │ │ ├── __init__.py │ │ ├── config.py │ │ ├── credential.py │ │ ├── main.py │ │ ├── resources │ │ ├── __init__.py │ │ ├── bucket.py │ │ ├── object.py │ │ └── service.py │ │ └── server.py └── uv.lock ├── mcp_server_traffic_route ├── README.md ├── README_zh.md ├── mcp.json ├── nodejs │ ├── .gitignore │ ├── .npmignore │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── registry.ts │ │ ├── schema │ │ │ └── common.ts │ │ ├── sdk │ │ │ ├── base │ │ │ │ ├── fetch.ts │ │ │ │ ├── service.ts │ │ │ │ ├── sign.ts │ │ │ │ ├── sts2.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ └── typings.d.ts │ │ ├── server.ts │ │ ├── tools │ │ │ ├── tr │ │ │ │ └── all.ts │ │ │ └── veen │ │ │ │ └── compute.ts │ │ └── utils │ │ │ ├── en.ts │ │ │ ├── hans.ts │ │ │ ├── interfaces.ts │ │ │ ├── lang.ts │ │ │ └── tools.ts │ └── tsconfig.json └── python │ ├── .python-version │ ├── pyproject.toml │ ├── scripts │ ├── .gitkeep │ └── run.sh │ ├── uv.lock │ └── vcloud │ ├── __init__.py │ ├── base │ ├── __init__.py │ ├── aksk.py │ ├── base_service.py │ └── base_trait.py │ ├── traffic_route │ ├── __init__.py │ ├── api │ │ ├── __init__.py │ │ ├── api.py │ │ └── config.py │ ├── mcp_server.py │ ├── note.py │ └── server.py │ └── utils │ ├── __init__.py │ └── response.py ├── mcp_server_veapig ├── .gitignore ├── README.md ├── logo.png ├── mcp.json ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_veapig │ │ ├── .python-version │ │ ├── __init__.py │ │ ├── sign.py │ │ ├── sse.py │ │ ├── stdio.py │ │ ├── veapig_server.py │ │ └── veapig_server_test.py └── uv.lock ├── mcp_server_vedb_mysql ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_vedb_mysql │ │ ├── __init__.py │ │ ├── config.py │ │ └── server.py └── uv.lock ├── mcp_server_veen ├── README.md ├── README_zh.md ├── mcp.json ├── nodejs │ ├── .gitignore │ ├── .npmignore │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── registry.ts │ │ ├── schema │ │ │ └── common.ts │ │ ├── sdk │ │ │ ├── base │ │ │ │ ├── fetch.ts │ │ │ │ ├── service.ts │ │ │ │ ├── sign.ts │ │ │ │ ├── sts2.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ └── typings.d.ts │ │ ├── server.ts │ │ ├── tools │ │ │ ├── tr │ │ │ │ └── all.ts │ │ │ └── veen │ │ │ │ └── compute.ts │ │ └── utils │ │ │ ├── en.ts │ │ │ ├── hans.ts │ │ │ ├── interfaces.ts │ │ │ ├── lang.ts │ │ │ └── tools.ts │ └── tsconfig.json └── python │ ├── .python-version │ ├── build │ └── lib │ │ └── vcloud │ │ ├── base │ │ ├── aksk.py │ │ ├── base_service.py │ │ └── base_trait.py │ │ ├── utils │ │ ├── __init__.py │ │ └── response.py │ │ └── veen │ │ ├── __init__.py │ │ ├── api │ │ ├── __init__.py │ │ ├── api.py │ │ └── config.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py │ ├── pyproject.toml │ ├── scripts │ ├── .gitkeep │ └── run.sh │ ├── uv.lock │ └── vcloud │ ├── __init__.py │ ├── base │ ├── __init__.py │ ├── aksk.py │ ├── base_service.py │ └── base_trait.py │ ├── utils │ ├── __init__.py │ └── response.py │ └── veen │ ├── __init__.py │ ├── api │ ├── __init__.py │ ├── api.py │ └── config.py │ ├── mcp_server.py │ ├── note.py │ └── server.py ├── mcp_server_vefaas_browser └── README.md ├── mcp_server_vefaas_browser_use ├── README.md ├── mcp.json ├── pyproject.toml └── src │ └── mcp_server_vefaas_browser_use │ ├── __init__.py │ └── server.py ├── mcp_server_vefaas_function ├── .gitignore ├── README.md ├── logo.png ├── mcp.json ├── pyproject.toml ├── requirements.txt ├── src │ └── mcp_server_vefaas_function │ │ ├── .python-version │ │ ├── __init__.py │ │ ├── sign.py │ │ ├── sse.py │ │ ├── stdio.py │ │ ├── vefaas_server.py │ │ └── vefaas_server_test.py └── uv.lock ├── mcp_server_vefaas_sandbox ├── README.md ├── pyproject.toml ├── src │ └── mcp_server_vefaas_sandbox │ │ ├── __init__.py │ │ └── server.py └── uv.lock ├── mcp_server_veimagex ├── .gitignore ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── base_service.py │ │ └── base_trait.py │ ├── imagex │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── config.py │ │ ├── mcp_extend.py │ │ ├── mcp_server.py │ │ ├── note.py │ │ └── server.py │ └── utils │ │ ├── __init__.py │ │ └── response.py └── uv.lock ├── mcp_server_vikingdb ├── .python-version ├── README.md ├── README_zh.md ├── pyproject.toml ├── src │ └── mcp_server_vikingdb │ │ ├── __init__.py │ │ ├── common │ │ ├── __init__.py │ │ └── auth.py │ │ ├── config.py │ │ └── server.py └── uv.lock ├── mcp_server_vmp ├── .python-version ├── README.md ├── README_zh.md ├── logo.svg ├── pyproject.toml ├── requirements.txt ├── run.sh ├── src │ └── mcp_server_vmp │ │ ├── __init__.py │ │ ├── config.py │ │ ├── models.py │ │ ├── server.py │ │ ├── test.py │ │ ├── utils.py │ │ └── vmpapi.py └── uv.lock ├── mcp_server_vod ├── .gitignore ├── .python-version ├── README.md ├── README_zh.md ├── THIRD_PARTY_NOTICE.txt ├── pyproject.toml ├── src │ └── vevod_mcp │ │ ├── __init__.py │ │ ├── api │ │ ├── __init__.py │ │ └── vod.py │ │ ├── cli.py │ │ └── mcp_server.py └── uv.lock └── mcp_server_vortexip ├── .gitignore ├── README.md ├── pyproject.toml ├── src └── mcp_server_vortexip │ ├── __init__.py │ ├── base │ ├── __init__.py │ ├── config.py │ ├── example.env │ └── vortexip.py │ ├── main.py │ └── server.py └── uv.lock /.github/workflows/secret-scan.yml: -------------------------------------------------------------------------------- 1 | name: Secret Scan 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | gitleaks: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout code 14 | uses: actions/checkout@v4 15 | with: 16 | fetch-depth: 0 17 | 18 | - name: Secret Scanning 19 | uses: trufflesecurity/trufflehog@7dc056a193116ba8d82154bf0549381c8fb8545c # v3.88.14 20 | with: 21 | extra_args: --results=verified,unknown 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *config.yaml 2 | __pycache__/ 3 | .idea 4 | .DS_Store 5 | .venv/ 6 | *.egg-info/ 7 | .env 8 | .vscode/ 9 | .history/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | Copyright © 2025 Beijing Volcano Engine Technology Ltd. 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /app/general_client/README.md: -------------------------------------------------------------------------------- 1 | # General MCP client 2 | 3 | ## Introduction 4 | 5 | A basic implementation of a MCP client working with one mcp server 6 | 7 | ## Prerequisites 8 | 9 | Python >=3.10,<3.12 10 | 11 | ``` 12 | pip install -r requirement.txt 13 | ``` 14 | 15 | ## Quick Start 16 | 17 | 1. start a calculator MCP server 18 | 19 | ```bash 20 | ARK_API_KEY= ARK_TOOL_CACULATOR=true PORT=8765 uvx --from git+https://github.com/volcengine/mcp-server.git#subdirectory=server/mcp_server_ark mcp-server-ark --transport sse 21 | ``` 22 | 23 | 2. set up environment variable 24 | 25 | ``` bash 26 | export ARK_API_KEY= 27 | ``` 28 | 29 | 3. start your client 30 | 31 | ```bash 32 | python3 client.py 33 | ``` 34 | 35 | 4. run test query and see your output 36 | 1. example query to trigger calculator: 计算12341234/2341234+1123 37 | 38 | ![alt text](assets/image.png) -------------------------------------------------------------------------------- /app/general_client/assets/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/app/general_client/assets/image.png -------------------------------------------------------------------------------- /app/general_client/mcp_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "calculator": { 4 | "url": "http://localhost:8765/sse" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /app/general_client/requirements.txt: -------------------------------------------------------------------------------- 1 | git+https://github.com/luminghao-bytedance/ai-app-lab.git@feat/deepresearch_agent -------------------------------------------------------------------------------- /server/mcp_server_apmplus/.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /server/mcp_server_apmplus/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-apmplus" 3 | version = "0.1.0" 4 | description = "Add your description here" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "mcp>=1.7.1", 9 | "requests>=2.32.3", 10 | "volcengine-python-sdk>=3.0.1", 11 | ] 12 | 13 | [project.scripts] 14 | mcp-server-apmplus = "mcp_server_apmplus.main:main" 15 | 16 | [build-system] 17 | requires = ["hatchling"] 18 | build-backend = "hatchling.build" 19 | 20 | [tool.hatch.metadata] 21 | allow-direct-references = true 22 | 23 | [tool.uv.sources] 24 | mcp = { git = "https://github.com/zihengli-bytedance/python-sdk.git", rev = "temp-for-volc" } 25 | -------------------------------------------------------------------------------- /server/mcp_server_apmplus/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | cd `dirname $0` 4 | 5 | cd src 6 | exec python3 -m mcp_server_apmplus.main -t sse -------------------------------------------------------------------------------- /server/mcp_server_apmplus/src/mcp_server_apmplus/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_apmplus/src/mcp_server_apmplus/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_askecho/.python-version: -------------------------------------------------------------------------------- 1 | 3.13 2 | -------------------------------------------------------------------------------- /server/mcp_server_askecho/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-askecho" 3 | version = "0.1.0" 4 | description = "MCP Server for AskEcho" 5 | readme = "README.md" 6 | authors = [ 7 | { name = "liqi.0117", email = "liqi.0117@bytedance.com" } 8 | ] 9 | requires-python = ">=3.13" 10 | dependencies = [ 11 | "mcp>=1.9.3", 12 | "requests>=2.32.3", 13 | ] 14 | 15 | [project.scripts] 16 | mcp-server-askecho = "mcp_server_askecho.server:main" 17 | 18 | [build-system] 19 | requires = ["hatchling"] 20 | build-backend = "hatchling.build" 21 | -------------------------------------------------------------------------------- /server/mcp_server_askecho/src/mcp_server_askecho/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_askecho/src/mcp_server_askecho/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_billing/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-billing" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin billing for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["billing", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-billing = "mcp_server_billing:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_billing/src/mcp_server_billing/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_billing/src/mcp_server_billing/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_billing/src/mcp_server_billing/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: billing 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_billing/src/mcp_server_billing/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_bytehouse/mcp_bytehouse/__init__.py: -------------------------------------------------------------------------------- 1 | from .mcp_server import ( 2 | create_clickhouse_client, 3 | list_databases, 4 | list_tables, 5 | run_select_query, 6 | run_dml_ddl_query, 7 | get_bytehouse_table_engine_doc 8 | ) 9 | 10 | __all__ = [ 11 | "list_databases", 12 | "list_tables", 13 | "run_select_query", 14 | "create_clickhouse_client", 15 | "run_dml_ddl_query", 16 | "get_bytehouse_table_engine_doc" 17 | ] 18 | -------------------------------------------------------------------------------- /server/mcp_server_bytehouse/mcp_bytehouse/main.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from .mcp_server import mcp 3 | 4 | 5 | def main(): 6 | parser = argparse.ArgumentParser(description="Run the ByteHouse MCP Server") 7 | parser.add_argument( 8 | "--transport", 9 | "-t", 10 | choices=["sse", "stdio"], 11 | default="stdio", 12 | help="Transport protocol to use (sse or stdio)", 13 | ) 14 | args = parser.parse_args() 15 | 16 | mcp.run(transport=args.transport) 17 | 18 | 19 | if __name__ == "__main__": 20 | main() 21 | -------------------------------------------------------------------------------- /server/mcp_server_bytehouse/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp_bytehouse" 3 | version = "0.1.0" 4 | description = "An MCP server for ByteHouse." 5 | readme = "README.md" 6 | license = "Apache-2.0" 7 | license-files = ["LICENSE"] 8 | requires-python = ">=3.10" 9 | dependencies = [ 10 | "mcp[cli]>=1.6.0", 11 | "python-dotenv>=1.0.1", 12 | "uvicorn>=0.34.0", 13 | "clickhouse-connect>=0.8.0", 14 | "pip-system-certs>=4.0", 15 | ] 16 | 17 | [project.scripts] 18 | mcp_bytehouse = "mcp_bytehouse.main:main" 19 | 20 | 21 | [project.optional-dependencies] 22 | dev = [ 23 | "ruff", 24 | "pytest" 25 | ] 26 | 27 | 28 | [tool.ruff] 29 | line-length = 100 30 | 31 | [build-system] 32 | requires = ["hatchling"] 33 | build-backend = "hatchling.build" 34 | 35 | [tool.hatch.build.targets.wheel] 36 | packages = ["mcp_bytehouse"] 37 | -------------------------------------------------------------------------------- /server/mcp_server_cdn/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_cdn/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp_cdn" 4 | version = "0.1.0" 5 | description = "MCP server for CDN" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp_cdn= "src.CDN.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/CDN/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cdn/src/CDN/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/CDN/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cdn/src/CDN/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/CDN/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class CdnAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/CDN/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.CDN.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | 8 | load_dotenv() 9 | 10 | 11 | def main(): 12 | try: 13 | mcp = create_mcp_server() 14 | asyncio.run(mcp.run()) 15 | except Exception as e: 16 | print(f"启动服务器时出错: {e}", file=sys.stderr) 17 | sys.exit(1) 18 | 19 | 20 | if __name__ == "__main__": 21 | main() 22 | -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cdn/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cdn/src/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cdn/src/utils/response.py: -------------------------------------------------------------------------------- 1 | def Error(message: str): 2 | return "API Error: " + message 3 | 4 | 5 | def HandlerVolcResponse(response: dict): 6 | if ( 7 | response 8 | and hasattr(response, "ResponseMetadata") 9 | and response.ResponseMetadata 10 | and hasattr(response.ResponseMetadata, "Error") 11 | and response.ResponseMetadata.Error 12 | ): 13 | return Error(response.ResponseMetadata.Error.Message) 14 | return str(response) 15 | -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp-server-certificate-center" 4 | version = "0.1.0" 5 | description = "MCP server for certificate_service" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp-server-certificate-center= "src.certificate_service.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_certificate_center/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_certificate_center/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/certificate_service/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_certificate_center/src/certificate_service/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/certificate_service/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_certificate_center/src/certificate_service/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/certificate_service/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class CertificateServiceAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/certificate_service/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.certificate_service.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | 8 | load_dotenv() 9 | 10 | 11 | def main(): 12 | try: 13 | mcp = create_mcp_server() 14 | asyncio.run(mcp.run()) 15 | except Exception as e: 16 | print(f"启动服务器时出错: {e}", file=sys.stderr) 17 | sys.exit(1) 18 | 19 | 20 | if __name__ == "__main__": 21 | main() 22 | -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_certificate_center/src/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_certificate_center/src/utils/response.py: -------------------------------------------------------------------------------- 1 | def Error(message: str): 2 | return "API Error: " + message 3 | 4 | 5 | def HandlerVolcResponse(response: dict): 6 | if ( 7 | response 8 | and hasattr(response, "ResponseMetadata") 9 | and response.ResponseMetadata 10 | and hasattr(response.ResponseMetadata, "Error") 11 | and response.ResponseMetadata.Error 12 | ): 13 | return Error(response.ResponseMetadata.Error.Message) 14 | return str(response) 15 | -------------------------------------------------------------------------------- /server/mcp_server_cloud_assistant/.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /server/mcp_server_cloud_assistant/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-cloud-assistant" 3 | version = "0.1.0" 4 | description = "Cloud Assistant MCP Server" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "mcp[cli]>=1.6.0", 9 | "volcengine-python-sdk>=3.0.1", 10 | ] 11 | 12 | [tool.uv.sources] 13 | mcp = { git = "https://github.com/zihengli-bytedance/python-sdk.git", rev = "temp-for-volc" } 14 | 15 | [build-system] 16 | requires = ["hatchling"] 17 | build-backend = "hatchling.build" 18 | 19 | [project.scripts] 20 | mcp-server-cloud-assistant = "mcp_server_cloud_assistant.server:main" 21 | -------------------------------------------------------------------------------- /server/mcp_server_cloud_assistant/src/mcp_server_cloud_assistant/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cloud_assistant/src/mcp_server_cloud_assistant/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cloud_assistant/src/mcp_server_cloud_assistant/config.py: -------------------------------------------------------------------------------- 1 | import os 2 | from dataclasses import dataclass 3 | 4 | 5 | @dataclass 6 | class CloudAssistantConfig: 7 | """Configuration for Cloud Assistant MCP Server.""" 8 | 9 | volcengine_endpoint: str 10 | volcengine_ak: str 11 | volcengine_sk: str 12 | session_token: str 13 | 14 | 15 | def load_config() -> CloudAssistantConfig: 16 | """Load configuration from environment variables.""" 17 | config = CloudAssistantConfig( 18 | volcengine_endpoint=os.environ["VOLC_ENDPOINT"], 19 | volcengine_ak=os.environ["VOLC_ACCESSKEY"], 20 | volcengine_sk=os.environ["VOLC_SECRETKEY"], 21 | session_token="" 22 | ) 23 | 24 | return config 25 | 26 | 27 | def get_auth_config(ak, sk, session_token) -> CloudAssistantConfig: 28 | """Load configuration from auth and environment variables.""" 29 | config = CloudAssistantConfig( 30 | volcengine_endpoint=os.environ["VOLC_ENDPOINT"], 31 | volcengine_ak=ak, 32 | volcengine_sk=sk, 33 | session_token=session_token, 34 | ) 35 | 36 | return config 37 | -------------------------------------------------------------------------------- /server/mcp_server_cloud_trail/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-cloud-trail" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin cloud_trail for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["cloud_trail", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-cloud-trail = "mcp_server_cloud_trail:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_cloud_trail/src/mcp_server_cloud_trail/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_cloud_trail/src/mcp_server_cloud_trail/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_cloud_trail/src/mcp_server_cloud_trail/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: cloud_trail 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_cloud_trail/src/mcp_server_cloud_trail/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_cloudidentity/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-cloudidentity" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin cloudidentity for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["cloudidentity", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-cloudidentity = "mcp_server_cloudidentity:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_cloudidentity/src/mcp_server_cloudidentity/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_cloudidentity/src/mcp_server_cloudidentity/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_cloudidentity/src/mcp_server_cloudidentity/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: cloudidentity 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_cloudidentity/src/mcp_server_cloudidentity/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "mcp-server-cloudmonitor-sse": { 4 | "command": "uvx", 5 | "args": [ 6 | "--from", 7 | "git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_cloudmonitor", 8 | "mcp-server-cloudmonitor-sse" 9 | ], 10 | "env": { 11 | "VOLCENGINE_ACCESS_KEY": "xxx", 12 | "VOLCENGINE_SECRET_KEY": "xxx" 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-cloudmonitor" 3 | version = "0.0.1" 4 | description = "MCP server for Cloud Monitor" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "mcp>=1.6.0", 9 | "volcengine-python-sdk==2.0.1", 10 | ] 11 | 12 | [project.scripts] 13 | mcp-server-cloudmonitor-stdio = "mcp_server_cloudmonitor.stdio:main" 14 | mcp-server-cloudmonitor-sse = "mcp_server_cloudmonitor.sse:main" 15 | 16 | [build-system] 17 | requires = ["hatchling"] 18 | build-backend = "hatchling.build" 19 | 20 | [tool.hatch.metadata] 21 | allow-direct-references = true 22 | 23 | [tool.uv.sources] 24 | mcp = { git = "https://github.com/zihengli-bytedance/python-sdk.git", rev = "temp-for-volc" } -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | cd `dirname $0` 4 | 5 | cd src 6 | exec python3 -m mcp_server_cloudmonitor.sse -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/models/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/server_test.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | import os 3 | 4 | class TestCloudMonitorServerIntegration(unittest.TestCase): 5 | def setUp(self): 6 | # Check if credentials are available 7 | self.ak = os.environ.get("VOLCENGINE_ACCESS_KEY") 8 | self.sk = os.environ.get("VOLCENGINE_SECRET_KEY") 9 | if not self.ak or not self.sk: 10 | self.assertFalse( 11 | "VOLCENGINE_ACCESS_KEY or VOLCENGINE_SECRET_KEY environment variables not set" 12 | ) 13 | 14 | if __name__ == "__main__": 15 | unittest.main() 16 | -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/sse.py: -------------------------------------------------------------------------------- 1 | from mcp_server_cloudmonitor.server import mcp 2 | 3 | def main(): 4 | import asyncio 5 | 6 | asyncio.run(mcp.run(transport="sse")) 7 | 8 | if __name__ == "__main__": 9 | main() 10 | 11 | # import asyncio 12 | 13 | # asyncio.run(run()) -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/stdio.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from mcp_server_cloudmonitor.server import mcp 4 | 5 | logging.basicConfig( 6 | level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" 7 | ) 8 | logger = logging.getLogger(__name__) 9 | 10 | def main(): 11 | logger.info("CloudMonitor MCP Server started") 12 | 13 | mcp.run(transport="stdio") 14 | 15 | if __name__ == "__main__": 16 | main() 17 | -------------------------------------------------------------------------------- /server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_cloudmonitor/src/mcp_server_cloudmonitor/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_cloudsearch/.python-version: -------------------------------------------------------------------------------- 1 | 3.10 2 | -------------------------------------------------------------------------------- /server/mcp_server_cloudsearch/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-cloudsearch" 3 | version = "0.1.0" 4 | description = "MCP Server For CloudSearch" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "mcp[cli]>=1.6.0", 9 | "volcengine-python-sdk>=3.0.1", 10 | ] 11 | 12 | [project.scripts] 13 | mcp-server-cloudsearch = "mcp_server_cloudsearch:main" 14 | 15 | [build-system] 16 | requires = ["hatchling"] 17 | build-backend = "hatchling.build" -------------------------------------------------------------------------------- /server/mcp_server_cloudsearch/src/mcp_server_cloudsearch/__init__.py: -------------------------------------------------------------------------------- 1 | from mcp_server_cloudsearch import server 2 | 3 | 4 | def main(): 5 | """ 6 | Main entry point for the package. 7 | """ 8 | server.main() 9 | -------------------------------------------------------------------------------- /server/mcp_server_cloudsearch/src/mcp_server_cloudsearch/__main__.py: -------------------------------------------------------------------------------- 1 | if __name__ == "__main__": 2 | """ 3 | Main entry point for the runpy. 4 | """ 5 | from mcp_server_cloudsearch import main 6 | main() 7 | -------------------------------------------------------------------------------- /server/mcp_server_cloudsearch/src/mcp_server_cloudsearch/client.py: -------------------------------------------------------------------------------- 1 | import os 2 | import volcenginesdkcore 3 | import volcenginesdkescloud 4 | from dotenv import load_dotenv 5 | 6 | 7 | def create_cloudsearch_client(region_id: str) -> volcenginesdkescloud.ESCLOUDApi: 8 | """创建火山引擎云搜索服务客户端""" 9 | load_dotenv() 10 | config = { 11 | "ak": os.getenv("VOLC_ACCESSKEY"), 12 | "sk": os.getenv("VOLC_SECRETKEY"), 13 | } 14 | if region_id is not None: 15 | config["region"] = region_id 16 | 17 | configuration = volcenginesdkcore.Configuration() 18 | configuration.ak = config["ak"] 19 | configuration.sk = config["sk"] 20 | configuration.region = config["region"] 21 | configuration.client_side_validation = True 22 | return volcenginesdkescloud.ESCLOUDApi(volcenginesdkcore.ApiClient(configuration)) 23 | -------------------------------------------------------------------------------- /server/mcp_server_cloudsearch/src/mcp_server_cloudsearch/tools/resource_info.py: -------------------------------------------------------------------------------- 1 | import volcenginesdkescloud 2 | from mcp.server.fastmcp import FastMCP 3 | from mcp.types import TextContent 4 | 5 | from mcp_server_cloudsearch.client import create_cloudsearch_client 6 | 7 | 8 | def register_tools(mcp: FastMCP): 9 | @mcp.tool() 10 | async def cloudsearch_describe_zones(region_id: str): 11 | """ 12 | 查询云搜索服务在指定区域下的可用区列表,包括可用区 id、名称、状态等信息。 13 | 14 | :param region_id: 区域 id 15 | :return: 可用区列表 16 | """ 17 | try: 18 | client = create_cloudsearch_client(region_id) 19 | response = client.describe_zones( 20 | volcenginesdkescloud.DescribeZonesRequest() 21 | ) 22 | return TextContent(type="text", text=str(response)) 23 | except Exception as e: 24 | return TextContent(type="text", text=f"Error: {str(e)}") -------------------------------------------------------------------------------- /server/mcp_server_computer_use/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-computer-use" 3 | version = "0.1.0" 4 | description = "MCP Server for Computer Use" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "mcp>=1.6.0", 9 | "pydantic==2.10.6", 10 | "concurrent-log-handler==0.9.25", 11 | "dynaconf==3.2.10", 12 | "jsonref==1.1.0", 13 | "tool_server_client==1.0.0rc7", 14 | ] 15 | 16 | [project.scripts] 17 | mcp-server-computer-use = "mcp_server_computer_use.main:main" 18 | 19 | [build-system] 20 | requires = ["hatchling"] 21 | build-backend = "hatchling.build" 22 | -------------------------------------------------------------------------------- /server/mcp_server_computer_use/src/mcp_server_computer_use/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_computer_use/src/mcp_server_computer_use/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_computer_use/src/mcp_server_computer_use/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_computer_use/src/mcp_server_computer_use/common/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_computer_use/src/mcp_server_computer_use/common/client.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from tool_server_client.client import ComputerUseClient, new_computer_use_client 4 | 5 | from mcp_server_computer_use.common.logs import LOG 6 | from mcp_server_computer_use.common.config import tool_server_config 7 | 8 | _local_client = None 9 | 10 | 11 | def tool_server_client(endpoint: str = None) -> ComputerUseClient: 12 | global _local_client 13 | 14 | try: 15 | if tool_server_config["local"]: 16 | if _local_client is None: 17 | endpoint = endpoint or os.environ.get( 18 | "TOOL_SERVER_ENDPOINT") or tool_server_config["endpoint"] 19 | _local_client = new_computer_use_client(endpoint) 20 | 21 | return _local_client 22 | else: 23 | LOG.info(f"Get client, endpoint: {endpoint}") 24 | return new_computer_use_client(endpoint) 25 | 26 | except Exception as e: 27 | LOG.error(f"Get client failed: {str(e)}") 28 | raise e 29 | -------------------------------------------------------------------------------- /server/mcp_server_computer_use/src/mcp_server_computer_use/common/config.py: -------------------------------------------------------------------------------- 1 | log_config = { 2 | "level": "INFO", 3 | "file": "/tmp/computer_use.log", 4 | "max_size": 1024000, 5 | "backup_count": 10, 6 | } 7 | 8 | tool_server_config = { 9 | "local": True, 10 | "endpoint": "", 11 | } 12 | -------------------------------------------------------------------------------- /server/mcp_server_computer_use/src/mcp_server_computer_use/common/errors.py: -------------------------------------------------------------------------------- 1 | from mcp import types 2 | 3 | from mcp_server_computer_use.common.logs import LOG 4 | 5 | 6 | # handle empty response error 7 | def _handle_empty_response(action_name): 8 | LOG.error(f"{action_name} returned empty response") 9 | return [ 10 | types.TextContent( 11 | type="text", 12 | text="Error: empty response" 13 | ) 14 | ] 15 | 16 | 17 | # handle exception error 18 | def _handle_exception(action_name, error): 19 | LOG.error(f"Exception when calling {action_name}: {str(error)}") 20 | return [ 21 | types.TextContent( 22 | type="text", 23 | text=f"Error: {str(error)}" 24 | ) 25 | ] 26 | 27 | 28 | def handle_error(action_name, error=None): 29 | """Handle API error response 30 | 31 | Args: 32 | action_name: API action name 33 | error: Exception object (optional) 34 | 35 | Returns: 36 | A list of TextContent objects representing the error in a unified format 37 | """ 38 | # create a mapping table for handling functions 39 | handlers = { 40 | True: lambda: _handle_exception(action_name, error), 41 | False: lambda: _handle_empty_response(action_name), 42 | } 43 | 44 | return handlers[error is not None]() 45 | -------------------------------------------------------------------------------- /server/mcp_server_computer_use/src/mcp_server_computer_use/main.py: -------------------------------------------------------------------------------- 1 | """ 2 | MCP Computer Use Server. 3 | 4 | This server provides MCP tools to interact with Computer Use Agent. 5 | """ 6 | 7 | import argparse 8 | 9 | from mcp_server_computer_use.common.logs import LOG 10 | from mcp_server_computer_use.tools import computer 11 | from mcp_server_computer_use.tools import MCP 12 | 13 | 14 | def main(): 15 | parser = argparse.ArgumentParser( 16 | description="Run the Computer Use MCP Server") 17 | parser.add_argument( 18 | "--transport", 19 | "-t", 20 | choices=["sse", "stdio"], 21 | default="stdio", 22 | help="Transport protocol to use (sse or stdio)", 23 | ) 24 | 25 | args = parser.parse_args() 26 | 27 | # Run the MCP server 28 | LOG.info( 29 | f"Starting Computer Use MCP Server with {args.transport} transport") 30 | 31 | MCP.run(transport=args.transport) 32 | 33 | 34 | if __name__ == "__main__": 35 | main() 36 | -------------------------------------------------------------------------------- /server/mcp_server_computer_use/src/mcp_server_computer_use/tools/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | from mcp.server.fastmcp import FastMCP 3 | 4 | MCP = FastMCP(name="computer_use", port=int( 5 | os.getenv("MCP_SERVER_PORT", "8000"))) 6 | -------------------------------------------------------------------------------- /server/mcp_server_dcdn/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_dcdn/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp-server-dcdn" 4 | version = "0.1.0" 5 | description = "MCP server for dcdn" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp-server-dcdn= "src.dcdn.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_dcdn/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_dcdn/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_dcdn/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_dcdn/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_dcdn/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_dcdn/src/dcdn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_dcdn/src/dcdn/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_dcdn/src/dcdn/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_dcdn/src/dcdn/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_dcdn/src/dcdn/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class DcdnAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_dcdn/src/dcdn/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.dcdn.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | 9 | load_dotenv() 10 | 11 | 12 | def main(): 13 | try: 14 | parser = argparse.ArgumentParser(description="Run the DCDN MCP Server") 15 | parser.add_argument( 16 | "--transport", 17 | "-t", 18 | choices=["sse", "stdio"], 19 | default="stdio", 20 | help="Transport protocol to use (sse or stdio)", 21 | ) 22 | args = parser.parse_args() 23 | print(args.transport) 24 | mcp = create_mcp_server() 25 | asyncio.run(mcp.run(transport=args.transport)) 26 | except Exception as e: 27 | print(f"Error occurred while starting the server: {e}", file=sys.stderr) 28 | sys.exit(1) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /server/mcp_server_domain_service/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_domain_service/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp-server-domain-service" 4 | version = "0.1.0" 5 | description = "MCP server for domain_openapi" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp-server-domain-service= "src.domain_openapi.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_domain_service/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_domain_service/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/domain_openapi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_domain_service/src/domain_openapi/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/domain_openapi/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_domain_service/src/domain_openapi/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/domain_openapi/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class DomainOpenapiAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/domain_openapi/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.domain_openapi.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | 8 | load_dotenv() 9 | 10 | 11 | def main(): 12 | try: 13 | mcp = create_mcp_server() 14 | asyncio.run(mcp.run()) 15 | except Exception as e: 16 | print(f"启动服务器时出错: {e}", file=sys.stderr) 17 | sys.exit(1) 18 | 19 | 20 | if __name__ == "__main__": 21 | main() 22 | -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_domain_service/src/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_domain_service/src/utils/response.py: -------------------------------------------------------------------------------- 1 | def Error(message: str): 2 | return "API Error: " + message 3 | 4 | 5 | def HandlerVolcResponse(response: dict): 6 | if ( 7 | response 8 | and hasattr(response, "ResponseMetadata") 9 | and response.ResponseMetadata 10 | and hasattr(response.ResponseMetadata, "Error") 11 | and response.ResponseMetadata.Error 12 | ): 13 | return Error(response.ResponseMetadata.Error.Message) 14 | return str(response) 15 | -------------------------------------------------------------------------------- /server/mcp_server_ebs/.python-version: -------------------------------------------------------------------------------- 1 | 3.10.16 2 | -------------------------------------------------------------------------------- /server/mcp_server_ebs/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-ebs" 3 | version = "0.1.0" 4 | description = "MCP server for EBS Service" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | license = {text = "MIT"} 8 | dependencies = [ 9 | "httpx>=0.28.1", 10 | "mcp[cli] @ git+https://github.com/zihengli-bytedance/python-sdk.git@temp-for-volc", 11 | "python-dotenv>=1.0.1", 12 | "volcengine==1.0.175", 13 | "volcengine-python-sdk>=3.0.1", 14 | "aiohttp>=3.11.14", 15 | "deprecated>=1.2.18", 16 | ] 17 | 18 | [project.scripts] 19 | mcp-server-ebs = "mcp_server_ebs.server:main" 20 | 21 | [build-system] 22 | requires = ["hatchling"] 23 | build-backend = "hatchling.build" 24 | 25 | [tool.hatch.metadata] 26 | allow-direct-references = true 27 | 28 | -------------------------------------------------------------------------------- /server/mcp_server_ebs/requirements.txt: -------------------------------------------------------------------------------- 1 | httpx>=0.28.1 2 | mcp @ git+https://github.com/zihengli-bytedance/python-sdk.git@3ff71057c9e60a20f81bfef6bd117f3b3d518f9c 3 | python-dotenv>=1.0.1 4 | volcengine>=1.0.175 5 | volcengine-python-sdk>=3.0.1 6 | aiohttp>=3.11.14 7 | deprecated>=1.2.18 8 | starlette 9 | -------------------------------------------------------------------------------- /server/mcp_server_ebs/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | cd `dirname $0` 4 | cd src 5 | exec python3 -m mcp_server_ebs.server -t sse -------------------------------------------------------------------------------- /server/mcp_server_ebs/src/mcp_server_ebs/__init__.py: -------------------------------------------------------------------------------- 1 | # Package initialization 2 | -------------------------------------------------------------------------------- /server/mcp_server_ecs/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-ecs" 3 | version = "0.1.0" 4 | description = "MCP Server for ECS" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "mcp @ git+https://github.com/zihengli-bytedance/python-sdk.git@temp-for-volc", 9 | "pydantic==2.10.6", 10 | "volcengine-python-sdk>=3.0.1", 11 | "concurrent-log-handler==0.9.25", 12 | "dynaconf==3.2.10", 13 | "jsonref>=1.1.0", 14 | ] 15 | 16 | [tool.hatch.metadata] 17 | allow-direct-references = true 18 | 19 | [project.scripts] 20 | mcp-server-ecs = "mcp_server_ecs.main:main" 21 | 22 | [build-system] 23 | requires = ["hatchling"] 24 | build-backend = "hatchling.build" 25 | -------------------------------------------------------------------------------- /server/mcp_server_ecs/src/mcp_server_ecs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_ecs/src/mcp_server_ecs/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_ecs/src/mcp_server_ecs/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_ecs/src/mcp_server_ecs/common/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_ecs/src/mcp_server_ecs/common/auth.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import json 3 | 4 | from starlette.requests import Request 5 | 6 | from mcp_server_ecs.common.logs import LOG 7 | from mcp_server_ecs.server import APP 8 | 9 | 10 | def get_auth_info(): 11 | raw_request: Request = APP.request_context.request 12 | auth = raw_request.headers.get("authorization", None) 13 | if auth is None: 14 | LOG.error("Missing authorization info") 15 | raise ValueError("Missing authorization info") 16 | 17 | if ' ' in auth: 18 | _, base64_data = auth.split(' ', 1) 19 | else: 20 | base64_data = auth 21 | 22 | try: 23 | decoded_str = base64.b64decode(base64_data).decode('utf-8') 24 | data = json.loads(decoded_str) 25 | 26 | ak = data.get('AccessKeyId') 27 | sk = data.get('SecretAccessKey') 28 | session_token = data.get('SessionToken') 29 | 30 | return ak, sk, session_token 31 | 32 | except Exception as e: 33 | LOG.error(f"Decode authorization info error: {e}") 34 | raise ValueError(f"Decode authorization info error: {e}") 35 | -------------------------------------------------------------------------------- /server/mcp_server_ecs/src/mcp_server_ecs/common/config.py: -------------------------------------------------------------------------------- 1 | deploy_config = { 2 | "is_local": True, 3 | "port": 8000, 4 | } 5 | 6 | log_config = { 7 | "level": "INFO", 8 | "file": "/var/log/mcp/ecs.log", 9 | "max_size": 1024000, 10 | "backup_count": 10, 11 | } 12 | 13 | auth_config = { 14 | "ak": "", 15 | "sk": "", 16 | "region": "", 17 | "endpoint": "", 18 | } 19 | -------------------------------------------------------------------------------- /server/mcp_server_ecs/src/mcp_server_ecs/common/errors.py: -------------------------------------------------------------------------------- 1 | from mcp import types 2 | from mcp_server_ecs.common.logs import LOG 3 | 4 | 5 | # handle empty response error 6 | def _handle_empty_response(action_name): 7 | LOG.error(f"{action_name} returned empty response") 8 | return [types.TextContent( 9 | type="text", 10 | text="Error: empty response" 11 | )] 12 | 13 | 14 | # handle exception error 15 | def _handle_exception(action_name, error): 16 | LOG.error(f"Exception when calling {action_name}: {str(error)}") 17 | return [types.TextContent( 18 | type="text", 19 | text=f"Error: {str(error)}" 20 | )] 21 | 22 | 23 | def handle_error(action_name, error=None): 24 | """Handle API error response 25 | 26 | Args: 27 | action_name: API action name 28 | error: Exception object (optional) 29 | 30 | Returns: 31 | A list of TextContent objects representing the error in a unified format 32 | """ 33 | # create a mapping table for handling functions 34 | handlers = { 35 | True: lambda: _handle_exception(action_name, error), 36 | False: lambda: _handle_empty_response(action_name), 37 | } 38 | 39 | return handlers[error is not None]() 40 | -------------------------------------------------------------------------------- /server/mcp_server_ecs/src/mcp_server_ecs/common/logs.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import os 3 | from concurrent_log_handler import ConcurrentRotatingFileHandler 4 | from typing import TypeVar 5 | from mcp_server_ecs.common.config import log_config 6 | 7 | _WRITE_MODE = "a" 8 | T = TypeVar("T") 9 | 10 | LOG = logging.getLogger(__name__) 11 | LOG.propagate = False 12 | 13 | try: 14 | LOG.setLevel(getattr(logging, log_config["level"].upper(), logging.INFO)) 15 | log_dir = os.path.dirname(log_config["file"]) 16 | os.makedirs(log_dir, exist_ok=True) 17 | 18 | formatter = logging.Formatter( 19 | "%(asctime)s %(filename)s line:%(lineno)d %(levelname)s %(message)s", 20 | datefmt="%Y-%m-%d %H:%M:%S", 21 | ) 22 | rotate_handler = ConcurrentRotatingFileHandler( 23 | log_config["file"], 24 | _WRITE_MODE, 25 | log_config["max_size"], 26 | log_config["backup_count"], 27 | ) 28 | rotate_handler.setLevel(logging.INFO) 29 | rotate_handler.setFormatter(formatter) 30 | LOG.addHandler(rotate_handler) 31 | 32 | console_handler = logging.StreamHandler() 33 | console_handler.setLevel(logging.INFO) 34 | console_handler.setFormatter(formatter) 35 | LOG.addHandler(console_handler) 36 | 37 | except Exception as e: 38 | print(f"Log initialize failed: {str(e)}") 39 | -------------------------------------------------------------------------------- /server/mcp_server_ecs/src/mcp_server_ecs/main.py: -------------------------------------------------------------------------------- 1 | """ 2 | ECS MCP Server. 3 | 4 | This server provides MCP tools to interact with ECS OpenAPI. 5 | """ 6 | 7 | import argparse 8 | 9 | from mcp_server_ecs.common.logs import LOG 10 | from mcp_server_ecs.server import serve 11 | from mcp_server_ecs.tools import event, instance, region 12 | 13 | 14 | def main(): 15 | parser = argparse.ArgumentParser(description="Run the ECS MCP Server") 16 | parser.add_argument( 17 | "--transport", 18 | "-t", 19 | choices=["sse", "stdio"], 20 | default="stdio", 21 | help="Transport protocol to use (sse or stdio)", 22 | ) 23 | 24 | args = parser.parse_args() 25 | LOG.info(f"Starting ECS MCP Server with {args.transport} transport") 26 | 27 | serve(args.transport) 28 | 29 | 30 | if __name__ == "__main__": 31 | main() 32 | -------------------------------------------------------------------------------- /server/mcp_server_enterprise/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_enterprise/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp-server-enterprise" 4 | version = "0.1.0" 5 | description = "MCP server for trademark" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp-server-enterprise= "src.trademark.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_enterprise/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_enterprise/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_enterprise/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_enterprise/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_enterprise/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_enterprise/src/trademark/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_enterprise/src/trademark/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_enterprise/src/trademark/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_enterprise/src/trademark/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_enterprise/src/trademark/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class TrademarkAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_enterprise/src/trademark/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.trademark.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | 9 | load_dotenv() 10 | 11 | 12 | def main(): 13 | try: 14 | parser = argparse.ArgumentParser(description="Run the TRADEMARK MCP Server") 15 | parser.add_argument( 16 | "--transport", 17 | "-t", 18 | choices=["sse", "stdio"], 19 | default="stdio", 20 | help="Transport protocol to use (sse or stdio)", 21 | ) 22 | args = parser.parse_args() 23 | print(args.transport) 24 | mcp = create_mcp_server() 25 | asyncio.run(mcp.run(transport=args.transport)) 26 | except Exception as e: 27 | print(f"Error occurred while starting the server: {e}", file=sys.stderr) 28 | sys.exit(1) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /server/mcp_server_ga/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_ga/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp-server-ga" 4 | version = "0.1.0" 5 | description = "MCP server for ga" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp-server-ga= "src.ga.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_ga/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_ga/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_ga/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_ga/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_ga/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_ga/src/ga/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_ga/src/ga/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_ga/src/ga/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_ga/src/ga/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_ga/src/ga/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class GaAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_ga/src/ga/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.ga.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | 9 | load_dotenv() 10 | 11 | 12 | def main(): 13 | try: 14 | parser = argparse.ArgumentParser(description="Run the GA MCP Server") 15 | parser.add_argument( 16 | "--transport", 17 | "-t", 18 | choices=["sse", "stdio"], 19 | default="stdio", 20 | help="Transport protocol to use (sse or stdio)", 21 | ) 22 | args = parser.parse_args() 23 | print(args.transport) 24 | mcp = create_mcp_server() 25 | asyncio.run(mcp.run(transport=args.transport)) 26 | except Exception as e: 27 | print(f"Error occurred while starting the server: {e}", file=sys.stderr) 28 | sys.exit(1) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /server/mcp_server_iam/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-iam" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin iam for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["iam", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-iam = "mcp_server_iam:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_iam/src/mcp_server_iam/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_iam/src/mcp_server_iam/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_iam/src/mcp_server_iam/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: iam 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_iam/src/mcp_server_iam/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_iga/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_iga/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp_server_iga" 4 | version = "0.1.0" 5 | description = "MCP server for dcdn" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp_server_iga= "src.dcdn.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_iga/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_iga/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_iga/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_iga/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_iga/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_iga/src/dcdn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_iga/src/dcdn/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_iga/src/dcdn/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_iga/src/dcdn/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_iga/src/dcdn/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class DcdnAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_iga/src/dcdn/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.dcdn.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | 9 | load_dotenv() 10 | 11 | 12 | def main(): 13 | try: 14 | parser = argparse.ArgumentParser(description="Run the DCDN MCP Server") 15 | parser.add_argument( 16 | "--transport", 17 | "-t", 18 | choices=["sse", "stdio"], 19 | default="stdio", 20 | help="Transport protocol to use (sse or stdio)", 21 | ) 22 | args = parser.parse_args() 23 | print(args.transport) 24 | mcp = create_mcp_server() 25 | asyncio.run(mcp.run(transport=args.transport)) 26 | except Exception as e: 27 | print(f"Error occurred while starting the server: {e}", file=sys.stderr) 28 | sys.exit(1) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /server/mcp_server_iga/src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_iga/src/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_iga/src/utils/response.py: -------------------------------------------------------------------------------- 1 | def Error(message: str): 2 | return "API Error: " + message 3 | 4 | 5 | def HandlerVolcResponse(response: dict): 6 | if ( 7 | response 8 | and hasattr(response, "ResponseMetadata") 9 | and response.ResponseMetadata 10 | and hasattr(response.ResponseMetadata, "Error") 11 | and response.ResponseMetadata.Error 12 | ): 13 | return Error(response.ResponseMetadata.Error.Message) 14 | return str(response) -------------------------------------------------------------------------------- /server/mcp_server_knowledgebase/.python-version: -------------------------------------------------------------------------------- 1 | 3.13 2 | -------------------------------------------------------------------------------- /server/mcp_server_knowledgebase/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-knowledgebase" 3 | version = "0.1.0" 4 | description = "MCP server for Viking Knowledge Base Service" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | license = {text = "MIT"} 8 | dependencies = [ 9 | "mcp[cli]>=1.5.0", 10 | "volcengine>=1.0.171", 11 | "aiohttp>=3.11.14", 12 | "deprecated>=1.2.18", 13 | ] 14 | 15 | [project.scripts] 16 | mcp-server-knowledgebase = "mcp_server_knowledgebase.server:main" 17 | 18 | [build-system] 19 | requires = ["hatchling"] 20 | build-backend = "hatchling.build" 21 | 22 | -------------------------------------------------------------------------------- /server/mcp_server_knowledgebase/src/mcp_server_knowledgebase/__init__.py: -------------------------------------------------------------------------------- 1 | # Package initialization 2 | -------------------------------------------------------------------------------- /server/mcp_server_knowledgebase/src/mcp_server_knowledgebase/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_knowledgebase/src/mcp_server_knowledgebase/common/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_las/.gitignore: -------------------------------------------------------------------------------- 1 | # Python 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | *.so 6 | .Python 7 | build/ 8 | develop-eggs/ 9 | dist/ 10 | downloads/ 11 | eggs/ 12 | .eggs/ 13 | lib/ 14 | lib64/ 15 | parts/ 16 | sdist/ 17 | var/ 18 | wheels/ 19 | *.egg-info/ 20 | .installed.cfg 21 | *.egg 22 | 23 | # Virtual environments 24 | venv/ 25 | env/ 26 | ENV/ 27 | .env 28 | .python-version 29 | 30 | # IDE files 31 | .idea/ 32 | .vscode/ 33 | *.swp 34 | *.swo 35 | .DS_Store 36 | .clinerules 37 | 38 | # Logs 39 | *.log 40 | .DS_Store 41 | server/.DS_Store 42 | DS_Store -------------------------------------------------------------------------------- /server/mcp_server_las/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-las" 3 | version = "0.1.0" 4 | description = "MCP server for LAS search_logs API" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "httpx>=0.28.1", 9 | "volcengine>=1.0.175", 10 | "mcp[cli]>=1.6.0", 11 | ] 12 | 13 | [project.scripts] 14 | mcp-server-las = "mcp_server_las.server:main" 15 | 16 | [build-system] 17 | requires = ["hatchling", "pydantic-core>=2.33.1", "pydantic>=2.0.0"] 18 | build-backend = "hatchling.build" 19 | [tool.hatch.metadata] 20 | allow-direct-references = true 21 | -------------------------------------------------------------------------------- /server/mcp_server_las/src/mcp_server_las/__init__.py: -------------------------------------------------------------------------------- 1 | # LAS MCP Server package 2 | -------------------------------------------------------------------------------- /server/mcp_server_live/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | /.venv/ 3 | *.egg-info 4 | .env 5 | build/ 6 | dist/ -------------------------------------------------------------------------------- /server/mcp_server_live/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 -------------------------------------------------------------------------------- /server/mcp_server_live/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp-server-live" 4 | version = "0.1.0" 5 | description = "MCP server for live" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp-server-live= "src.live.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_live/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_live/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_live/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_live/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_live/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_live/src/live/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_live/src/live/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_live/src/live/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_live/src/live/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_live/src/live/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class LiveAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_live/src/live/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.live.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | 8 | load_dotenv() 9 | 10 | 11 | def main(): 12 | try: 13 | mcp = create_mcp_server() 14 | asyncio.run(mcp.run()) 15 | except Exception as e: 16 | print(f"启动服务器时出错: {e}", file=sys.stderr) 17 | sys.exit(1) 18 | 19 | 20 | if __name__ == "__main__": 21 | main() 22 | -------------------------------------------------------------------------------- /server/mcp_server_live/src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_live/src/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_live/src/utils/response.py: -------------------------------------------------------------------------------- 1 | def Error(message: str): 2 | return "API Error: " + message 3 | 4 | 5 | def HandlerVolcResponse(response: dict): 6 | if ( 7 | response 8 | and hasattr(response, "ResponseMetadata") 9 | and response.ResponseMetadata 10 | and hasattr(response.ResponseMetadata, "Error") 11 | and response.ResponseMetadata.Error 12 | ): 13 | return Error(response.ResponseMetadata.Error.Message) 14 | return str(response) 15 | -------------------------------------------------------------------------------- /server/mcp_server_mcdn/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_mcdn/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp_server_mcdn" 4 | version = "0.1.0" 5 | description = "MCP server for mcdn" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp_server_mcdn= "src.mcdn.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_mcdn/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_mcdn/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_mcdn/src/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_mcdn/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_mcdn/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_mcdn/src/mcdn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_mcdn/src/mcdn/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_mcdn/src/mcdn/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_mcdn/src/mcdn/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_mcdn/src/mcdn/api/api.py: -------------------------------------------------------------------------------- 1 | from src.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class McdnAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_mcdn/src/mcdn/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from src.mcdn.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | 9 | load_dotenv() 10 | 11 | 12 | def main(): 13 | try: 14 | parser = argparse.ArgumentParser(description="Run the MCDN MCP Server") 15 | parser.add_argument( 16 | "--transport", 17 | "-t", 18 | choices=["sse", "stdio"], 19 | default="stdio", 20 | help="Transport protocol to use (sse or stdio)", 21 | ) 22 | args = parser.parse_args() 23 | print(args.transport) 24 | mcp = create_mcp_server() 25 | asyncio.run(mcp.run(transport=args.transport)) 26 | except Exception as e: 27 | print(f"Error occurred while starting the server: {e}", file=sys.stderr) 28 | sys.exit(1) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/.gitignore: -------------------------------------------------------------------------------- 1 | /output/* -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang:1.23-alpine:latest AS builder 2 | 3 | WORKDIR /app 4 | 5 | COPY go.mod go.sum ./ 6 | RUN go mod download 7 | 8 | COPY . . 9 | 10 | RUN sh build.sh 11 | 12 | FROM alpine:latest 13 | WORKDIR /app 14 | COPY --from=builder /app/output/mobile_use_mcp /app/mobile_use_mcp -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | mkdir -p output 5 | 6 | ## MCP Server 7 | echo "Building MCP Server..." 8 | GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o output/mobile_use_mcp ./cmd/mobile_use_mcp/... 9 | 10 | ## Cap AOP 11 | # echo "Building Cap AOP..." 12 | # CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -v -o output/cap_tos ./cmd/cap_aop/... 13 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/go.mod: -------------------------------------------------------------------------------- 1 | module mcp_server_mobile_use 2 | 3 | go 1.23.6 4 | 5 | require ( 6 | github.com/mark3labs/mcp-go v0.26.0 7 | github.com/volcengine/volc-sdk-golang v1.0.202 8 | ) 9 | 10 | require ( 11 | github.com/cenkalti/backoff/v4 v4.1.2 // indirect 12 | github.com/google/uuid v1.6.0 // indirect 13 | github.com/spf13/cast v1.7.1 // indirect 14 | github.com/stretchr/testify v1.10.0 // indirect 15 | github.com/yosida95/uritemplate/v3 v3.0.2 // indirect 16 | golang.org/x/net v0.33.0 // indirect 17 | golang.org/x/text v0.21.0 // indirect 18 | ) 19 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/config/config.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | type MobileUseConfig struct { 4 | AuthInfo 5 | BizInfo 6 | TosInfo 7 | } 8 | 9 | type AuthInfo struct { 10 | CurrentTime string 11 | ExpiredTime string 12 | AccessKeyId string 13 | SecretAccessKey string 14 | SessionToken string 15 | } 16 | 17 | type BizInfo struct { 18 | ACEPHost string 19 | ProductId string 20 | DeviceId string 21 | } 22 | 23 | type TosInfo struct { 24 | TosBucket string 25 | TosRegion string 26 | TosEndpoint string 27 | TosAccessKey string 28 | TosSecretKey string 29 | TosSessionToken string 30 | } 31 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/service/acpe_model.go: -------------------------------------------------------------------------------- 1 | package service 2 | 3 | type AppItem struct { 4 | AppID string `json:"app_id"` 5 | AppName string `json:"app_name"` 6 | AppStatus string `json:"app_status"` 7 | PackageName string `json:"package_name"` 8 | } 9 | 10 | type TosConfig struct { 11 | AccessKey string 12 | SecretKey string 13 | SessionToken string 14 | Bucket string 15 | Region string 16 | Endpoint string 17 | } 18 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/tool/key_event_back.go: -------------------------------------------------------------------------------- 1 | package tool 2 | 3 | import ( 4 | "context" 5 | 6 | "mcp_server_mobile_use/internal/mobile_use/consts" 7 | 8 | "github.com/mark3labs/mcp-go/mcp" 9 | ) 10 | 11 | func NewKeyEventBackTool() mcp.Tool { 12 | return mcp.NewTool("back", 13 | mcp.WithDescription("Go one step/page back on the cloud phone"), 14 | ) 15 | } 16 | 17 | func HandleKeyEventBackTool() func(context.Context, mcp.CallToolRequest) (*mcp.CallToolResult, error) { 18 | return func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { 19 | err := CheckAuth(ctx) 20 | if err != nil { 21 | return CallResultError(err) 22 | } 23 | mobileUseConfig, err := GetMobileUseConfig(ctx) 24 | if err != nil || mobileUseConfig == nil { 25 | return CallResultError(err) 26 | } 27 | handler, err := InitMobileUseService(ctx, mobileUseConfig) 28 | if err != nil { 29 | return CallResultError(err) 30 | } 31 | err = handler.KeyEvent(ctx, consts.AndroidKeyEventBack) 32 | if err != nil { 33 | return CallResultError(err) 34 | } 35 | return CallResultSuccess("Back successfully") 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/tool/key_event_home.go: -------------------------------------------------------------------------------- 1 | package tool 2 | 3 | import ( 4 | "context" 5 | 6 | "mcp_server_mobile_use/internal/mobile_use/consts" 7 | 8 | "github.com/mark3labs/mcp-go/mcp" 9 | ) 10 | 11 | func NewKeyEventHomeTool() mcp.Tool { 12 | return mcp.NewTool("home", 13 | mcp.WithDescription("Go to the home screen of the cloud phone"), 14 | ) 15 | } 16 | 17 | func HandleKeyEventHomeTool() func(context.Context, mcp.CallToolRequest) (*mcp.CallToolResult, error) { 18 | return func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { 19 | err := CheckAuth(ctx) 20 | if err != nil { 21 | return CallResultError(err) 22 | } 23 | mobileUseConfig, err := GetMobileUseConfig(ctx) 24 | if err != nil || mobileUseConfig == nil { 25 | return CallResultError(err) 26 | } 27 | handler, err := InitMobileUseService(ctx, mobileUseConfig) 28 | if err != nil { 29 | return CallResultError(err) 30 | } 31 | err = handler.KeyEvent(ctx, consts.AndroidKeyEventHome) 32 | if err != nil { 33 | return CallResultError(err) 34 | } 35 | return CallResultSuccess("Go home successfully") 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/tool/key_event_menu.go: -------------------------------------------------------------------------------- 1 | package tool 2 | 3 | import ( 4 | "context" 5 | 6 | "mcp_server_mobile_use/internal/mobile_use/consts" 7 | 8 | "github.com/mark3labs/mcp-go/mcp" 9 | ) 10 | 11 | func NewKeyEventMenuTool() mcp.Tool { 12 | return mcp.NewTool("menu", 13 | mcp.WithDescription("Open the Menu on the cloud phone"), 14 | ) 15 | } 16 | 17 | func HandleKeyEventMenuTool() func(context.Context, mcp.CallToolRequest) (*mcp.CallToolResult, error) { 18 | return func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { 19 | err := CheckAuth(ctx) 20 | if err != nil { 21 | return CallResultError(err) 22 | } 23 | mobileUseConfig, err := GetMobileUseConfig(ctx) 24 | if err != nil || mobileUseConfig == nil { 25 | return CallResultError(err) 26 | } 27 | handler, err := InitMobileUseService(ctx, mobileUseConfig) 28 | if err != nil { 29 | return CallResultError(err) 30 | } 31 | err = handler.KeyEvent(ctx, consts.AndroidKeyEventMenu) 32 | if err != nil { 33 | return CallResultError(err) 34 | } 35 | return CallResultSuccess("Open the Menu successfully") 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/tool/list_app.go: -------------------------------------------------------------------------------- 1 | package tool 2 | 3 | import ( 4 | "context" 5 | "encoding/json" 6 | 7 | "github.com/mark3labs/mcp-go/mcp" 8 | ) 9 | 10 | func NewListAppTool() mcp.Tool { 11 | return mcp.NewTool("list_apps", 12 | mcp.WithDescription("List all apps installed on cloud phone"), 13 | ) 14 | } 15 | 16 | func HandleListAppTool() func(context.Context, mcp.CallToolRequest) (*mcp.CallToolResult, error) { 17 | return func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { 18 | err := CheckAuth(ctx) 19 | if err != nil { 20 | return CallResultError(err) 21 | } 22 | mobileUseConfig, err := GetMobileUseConfig(ctx) 23 | if err != nil || mobileUseConfig == nil { 24 | return CallResultError(err) 25 | } 26 | handler, err := InitMobileUseService(ctx, mobileUseConfig) 27 | if err != nil { 28 | return CallResultError(err) 29 | } 30 | appList, err := handler.ListApps(ctx) 31 | if err != nil { 32 | return CallResultError(err) 33 | } 34 | result := map[string]interface{}{ 35 | "AppList": appList, 36 | } 37 | jsonResult, _ := json.Marshal(result) 38 | return CallResultSuccess(string(jsonResult)) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/tool/take_screenshot.go: -------------------------------------------------------------------------------- 1 | package tool 2 | 3 | import ( 4 | "context" 5 | 6 | "github.com/mark3labs/mcp-go/mcp" 7 | ) 8 | 9 | func NewTakeScreenshotTool() mcp.Tool { 10 | return mcp.NewTool("take_screenshot", 11 | mcp.WithDescription("Take a screenshot of the cloud phone screen; if using this tool, please go to VolceEngine TOS and create a bucket."), 12 | ) 13 | } 14 | 15 | func HandleTakeScreenshot() func(context.Context, mcp.CallToolRequest) (*mcp.CallToolResult, error) { 16 | return func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { 17 | err := CheckAuth(ctx) 18 | if err != nil { 19 | return CallResultError(err) 20 | } 21 | mobileUseConfig, err := GetMobileUseConfig(ctx) 22 | if err != nil || mobileUseConfig == nil { 23 | return CallResultError(err) 24 | } 25 | handler, err := InitMobileUseService(ctx, mobileUseConfig) 26 | if err != nil { 27 | return CallResultError(err) 28 | } 29 | screenShotUrl, err := handler.ScreenShot(ctx) 30 | if err != nil { 31 | return CallResultError(err) 32 | } 33 | return CallResultSuccess(screenShotUrl) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /server/mcp_server_mobile_use/internal/mobile_use/tool/terminate.go: -------------------------------------------------------------------------------- 1 | package tool 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | 7 | "github.com/mark3labs/mcp-go/mcp" 8 | ) 9 | 10 | func NewTerminateTool() mcp.Tool { 11 | return mcp.NewTool("terminate", 12 | mcp.WithDescription("Terminate the current task"), 13 | mcp.WithString("reason", 14 | mcp.Description("The reason for terminating the task"), 15 | mcp.Required(), 16 | ), 17 | ) 18 | } 19 | 20 | func HandleTerminate() func(context.Context, mcp.CallToolRequest) (*mcp.CallToolResult, error) { 21 | return func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { 22 | err := CheckAuth(ctx) 23 | if err != nil { 24 | return CallResultError(err) 25 | } 26 | mobileUseConfig, err := GetMobileUseConfig(ctx) 27 | if err != nil || mobileUseConfig == nil { 28 | return CallResultError(err) 29 | } 30 | 31 | reason := req.Params.Arguments["reason"].(string) 32 | return CallResultSuccess(fmt.Sprintf("Task terminated: %s", reason)) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /server/mcp_server_mongodb/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_mongodb/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp_server_mongodb" 3 | version = "0.1.0" 4 | description = "MCP Server for Mongo" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "mcp[cli]", 9 | "volcengine-python-sdk>=3.0.1", 10 | ] 11 | 12 | [project.scripts] 13 | mcp-server-mongodb = "mcp_server_mongodb.server:main" 14 | 15 | [build-system] 16 | requires = ["hatchling"] 17 | build-backend = "hatchling.build" -------------------------------------------------------------------------------- /server/mcp_server_mongodb/src/mcp_server_mongodb/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_mongodb/src/mcp_server_mongodb/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_mongodb/src/mcp_server_mongodb/resource/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_mongodb/src/mcp_server_mongodb/resource/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_na/.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /server/mcp_server_na/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-na" 3 | version = "1.0" 4 | description = "MCP Server for NetworkAdvisor" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "volcengine-python-sdk>=1.1.2", 9 | "volcengine>=1.0.175", 10 | "mcp[cli]>=1.6.0", 11 | "requests==2.32.3", 12 | ] 13 | 14 | [project.scripts] 15 | mcp-server-na = "mcp_server_na.main:main" 16 | 17 | [tool.hatch.metadata] 18 | allow-direct-references = true 19 | 20 | [build-system] 21 | requires = ["hatchling"] 22 | build-backend = "hatchling.build" -------------------------------------------------------------------------------- /server/mcp_server_na/src/mcp_server_na/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_na/src/mcp_server_na/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_na/src/mcp_server_na/common/.env_example: -------------------------------------------------------------------------------- 1 | # VolcEngine config example 2 | VOLCENGINE_ACCESS_KEY=VOLCENGINE_ACCESS_KEY 3 | VOLCENGINE_SECRET_KEY=VOLCENGINE_SECRET_KEY 4 | VOLCENGINE_REGION=cn-beijing 5 | VOLCENGINE_ENDPOINT=vpc.cn-beijing.volcengineapi.com 6 | -------------------------------------------------------------------------------- /server/mcp_server_na/src/mcp_server_na/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_na/src/mcp_server_na/common/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_na/src/mcp_server_na/main.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import logging 3 | 4 | from mcp_server_na.server import mcp 5 | 6 | 7 | # Configure logging 8 | logging.basicConfig( 9 | level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" 10 | ) 11 | logger = logging.getLogger(__name__) 12 | 13 | 14 | def main(): 15 | parser = argparse.ArgumentParser(description="Run the NetworkAdvisor MCP Server") 16 | parser.add_argument( 17 | "--transport", "-t", 18 | choices=["stdio"], 19 | default="stdio", 20 | help="Transport protocol to use stdio" 21 | ) 22 | args = parser.parse_args() 23 | 24 | try: 25 | # Run the MCP server 26 | logger.info(f"Starting NetworkAdvisor MCP Server with {args.transport} transport") 27 | mcp.run(transport=args.transport) 28 | except Exception as e: 29 | logger.exception(f"Error starting NetworkAdvisor MCP Server: {str(e)}") 30 | raise 31 | 32 | 33 | if __name__ == "__main__": 34 | main() -------------------------------------------------------------------------------- /server/mcp_server_na/src/mcp_server_na/server.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import os 3 | 4 | from typing import Any 5 | from mcp.server.fastmcp import FastMCP 6 | from mcp_server_na.common.client import NAClient 7 | from mcp_server_na.common.config import NA_CONFIG 8 | 9 | logger = logging.getLogger(__name__) 10 | 11 | # Initialize FastMCP server 12 | mcp = FastMCP("NetworkAdvisor MCP Server", port=int(os.getenv("PORT", "8000"))) 13 | 14 | na_client = NAClient(NA_CONFIG.region, NA_CONFIG.host, NA_CONFIG.access_key, NA_CONFIG.secret_key) 15 | 16 | 17 | @mcp.tool() 18 | def create_diagnosis_instance(region: str, resource_type: str, resource_id: str) -> dict[str, Any]: 19 | """Create diagnosis instance""" 20 | return na_client.create_diagnosis_instance(region, resource_type, resource_id) 21 | 22 | 23 | @mcp.tool() 24 | def describe_diagnosis_instance_detail(diagnosis_instance_id: str) -> dict[str, Any]: 25 | """Describe diagnosis instance detail""" 26 | return na_client.describe_diagnosis_instance_detail(diagnosis_instance_id) 27 | -------------------------------------------------------------------------------- /server/mcp_server_organization/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-organization" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin organization for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["organization", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-organization = "mcp_server_organization:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_organization/src/mcp_server_organization/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_organization/src/mcp_server_organization/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_organization/src/mcp_server_organization/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: organization 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_organization/src/mcp_server_organization/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_project/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-project" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin project for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["project", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-project = "mcp_server_project:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_project/src/mcp_server_project/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_project/src/mcp_server_project/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_project/src/mcp_server_project/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: project 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_project/src/mcp_server_project/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_rds_mysql/.python-version: -------------------------------------------------------------------------------- 1 | 3.10.16 2 | -------------------------------------------------------------------------------- /server/mcp_server_rds_mysql/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-rds-mysql" 3 | version = "0.1.0" 4 | description = "MCP server for RDS MySQL" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | license = {text = "MIT"} 8 | dependencies = [ 9 | "mcp[cli]>=1.5.0", 10 | "volcengine-python-sdk>=3.0.1", 11 | "aiohttp>=3.11.14", 12 | "deprecated>=1.2.18", 13 | ] 14 | 15 | [project.scripts] 16 | mcp-server-ebs = "mcp_server_rds_mysql.server:main" 17 | 18 | [build-system] 19 | requires = ["hatchling"] 20 | build-backend = "hatchling.build" 21 | 22 | [dependency-groups] 23 | dev = [ 24 | "pytest>=8.3.5", 25 | ] 26 | -------------------------------------------------------------------------------- /server/mcp_server_rds_mysql/src/mcp_server_rds_mysql/__init__.py: -------------------------------------------------------------------------------- 1 | # Package initialization 2 | -------------------------------------------------------------------------------- /server/mcp_server_rds_mysql/static/image/rdsmysql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_rds_mysql/static/image/rdsmysql.png -------------------------------------------------------------------------------- /server/mcp_server_resource_share/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-resource-share" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin resource_share for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["resource_share", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-resource-share = "mcp_server_resource_share:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_resource_share/src/mcp_server_resource_share/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_resource_share/src/mcp_server_resource_share/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_resource_share/src/mcp_server_resource_share/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: resource_share 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_resource_share/src/mcp_server_resource_share/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_resourcecenter/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-resourcecenter" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin resourcecenter for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["resourcecenter", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-resourcecenter = "mcp_server_resourcecenter:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_resourcecenter/src/mcp_server_resourcecenter/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_resourcecenter/src/mcp_server_resourcecenter/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_resourcecenter/src/mcp_server_resourcecenter/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: resourcecenter 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_resourcecenter/src/mcp_server_resourcecenter/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_sec_agent/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.11-slim 2 | 3 | WORKDIR /app 4 | 5 | RUN apt-get update && \ 6 | # 安装 Git 7 | apt-get install -y git && \ 8 | # 清理缓存以减小镜像大小 9 | apt-get clean && \ 10 | rm -rf /var/lib/apt/lists/* 11 | 12 | RUN pip install --upgrade pip && \ 13 | pip install uv 14 | 15 | COPY pyproject.toml* /app/ 16 | 17 | COPY . /app 18 | 19 | RUN uv sync && uv pip install --system . 20 | 21 | EXPOSE 8000 22 | 23 | CMD ["uv", "run", "mcp-server-sec-agent", "-t", "sse"] -------------------------------------------------------------------------------- /server/mcp_server_sec_agent/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-sec-agent" 3 | version = "0.1.0" 4 | description = "Add your description here" 5 | readme = "README.md" 6 | requires-python = ">=3.10,<4.0" 7 | dependencies = [ 8 | "mcp[cli]>=1.6.0", 9 | "pip>=25.0.1", 10 | "requests>=2.32.3", 11 | "volcengine-python-sdk>=3.0.1", 12 | ] 13 | 14 | [build-system] 15 | requires = ["hatchling"] 16 | build-backend = "hatchling.build" 17 | 18 | [project.scripts] 19 | mcp-server-sec-agent = "mcp_server_sec_agent.server:main" 20 | 21 | [tool.uv.sources] 22 | mcp = { git = "https://github.com/zihengli-bytedance/python-sdk.git", rev = "temp-for-volc" } 23 | -------------------------------------------------------------------------------- /server/mcp_server_sec_agent/src/mcp_server_sec_agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_sec_agent/src/mcp_server_sec_agent/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_sec_agent/src/mcp_server_sec_agent/client/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_sec_agent/src/mcp_server_sec_agent/client/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_sec_agent/src/mcp_server_sec_agent/client/model_test.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from build.lib.mcp_server_sec_agent.client.model import SecIntelligentMCPCallResult 4 | from client.model import PcapAnalysisResponse 5 | 6 | 7 | class MyTestCase(unittest.TestCase): 8 | def test_pcap_analysis_load_from_dict(self): 9 | d = {"ResponseMetaData": {"RequestId": "02174473965523900000000000000000000ffffac1000098d0695", 10 | "Error": {"Code": "RequestParamInvalid"}}} 11 | resp_obj = PcapAnalysisResponse.from_dict('', d) 12 | print(resp_obj) 13 | 14 | def test_load_from_dict(self): 15 | d = {"ResponseMetaData": {"RequestId": "02174479066006800000000000000000000ffffac10010c7179ee", 16 | "Error": {"Code": ""}}, 17 | "Result": {"ToolType": "pcap_analysis", "ToolCallStatus": "running", "ResultData": {}}} 18 | resp_obj = SecIntelligentMCPCallResult.from_dict('', d) 19 | print(resp_obj) 20 | 21 | 22 | if __name__ == '__main__': 23 | unittest.main() 24 | -------------------------------------------------------------------------------- /server/mcp_server_sec_agent/src/mcp_server_sec_agent/const.py: -------------------------------------------------------------------------------- 1 | MAX_ITERATIONS = 150 2 | ITERATION_SLEEP_SECONDS = 2 3 | 4 | TOOL_CALL_STATUS_SUCCESS = "success" 5 | TOOL_CALL_STATUS_FAILED = "failed" 6 | TOOL_CALL_STATUS_RUNNING = "running" 7 | -------------------------------------------------------------------------------- /server/mcp_server_sts/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-sts" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin sts for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["sts", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-sts = "mcp_server_sts:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_sts/src/mcp_server_sts/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_sts/src/mcp_server_sts/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_sts/src/mcp_server_sts/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: sts 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_sts/src/mcp_server_sts/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_tag/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-tag" 3 | version = "1.0.0" 4 | description = "A Model Context Protocol server providing tools for volcengin tag for LLMs" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | authors = [ 8 | { name = "volc-sdk-team", email = "volc-sdk-team@bytedance.com" }, 9 | ] 10 | keywords = ["tag", "mcp", "llm"] 11 | license = { text = "MIT" } 12 | classifiers = [ 13 | "Development Status :: 4 - Beta", 14 | "Intended Audience :: Developers", 15 | "License :: OSI Approved :: MIT License", 16 | "Programming Language :: Python :: 3", 17 | "Programming Language :: Python :: 3.10", 18 | ] 19 | dependencies = [ 20 | "aiohttp>=3.11.18", 21 | "fastmcp>=2.0.0", 22 | "pydantic>=2.0.0", 23 | "pyyaml>=6.0.2", 24 | "requests>=2.32.3", 25 | "tzdata>=2024.2", 26 | "volcengine-python-sdk>=3.0.1", 27 | ] 28 | 29 | [project.scripts] 30 | mcp-server-tag = "mcp_server_tag:main" 31 | 32 | [build-system] 33 | requires = ["hatchling"] 34 | build-backend = "hatchling.build" 35 | 36 | [tool.uv] 37 | dev-dependencies = [ 38 | "freezegun>=1.5.1", 39 | "pyright>=1.1.389", 40 | "pytest>=8.3.3", 41 | "ruff>=0.8.1", 42 | ] 43 | -------------------------------------------------------------------------------- /server/mcp_server_tag/src/mcp_server_tag/__init__.py: -------------------------------------------------------------------------------- 1 | from .server import serve 2 | 3 | 4 | def main(): 5 | """Volcengine MCP Server""" 6 | import asyncio 7 | asyncio.run(serve()) 8 | 9 | 10 | if __name__ == "__main__": 11 | main() 12 | -------------------------------------------------------------------------------- /server/mcp_server_tag/src/mcp_server_tag/__main__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | 3 | main() -------------------------------------------------------------------------------- /server/mcp_server_tag/src/mcp_server_tag/config/cfg.yaml: -------------------------------------------------------------------------------- 1 | service_code: tag 2 | transport: stdio # 支持 stdio 和 sse 3 | sse_port: 8888 # sse 模式需要设定端口 4 | auth: none # 支持 oauth 和 none 5 | credential: env # 支持 env 和 token 6 | 7 | #oauth: 8 | # client_id: your client id 9 | # client_secret: your client secret 10 | # authorize_url: 'https://github.com/login/oauth/authorize' 11 | # token_url: 'https://github.com/login/oauth/access_token' 12 | # scope: [user] -------------------------------------------------------------------------------- /server/mcp_server_tag/src/mcp_server_tag/variable.py: -------------------------------------------------------------------------------- 1 | OAUTH_HANDLED_PATHS = frozenset({ 2 | '/.well-known/oauth-authorization-server', 3 | '/auth/oauth/authorize', 4 | '/auth/oauth/register', 5 | '/auth/oauth/callback', 6 | '/auth/oauth/token' 7 | }) 8 | 9 | AUTHORIZATION_HEADER = 'Authorization' 10 | 11 | TRANSPORT_SSE = 'sse' 12 | 13 | VOLCENGINE_ACCESS_KEY = 'VOLCENGINE_ACCESS_KEY' 14 | VOLCENGINE_SECRET_KEY = 'VOLCENGINE_SECRET_KEY' 15 | VOLCENGINE_ACCESS_SESSION_TOKEN = 'VOLCENGINE_ACCESS_SESSION_TOKEN' 16 | VOLCENGINE_ENDPOINT = 'VOLCENGINE_ENDPOINT' 17 | VOLCENGINE_CREDENTIAL_TYPE = 'VOLCENGINE_CREDENTIAL_TYPE' 18 | 19 | MCP_SERVER_MODE = 'MCP_SERVER_MODE' 20 | MCP_SERVER_AUTH = 'MCP_SERVER_AUTH' 21 | MCP_SERVER_PORT = 'MCP_SERVER_PORT' 22 | 23 | CREDENTIAL_TYPE_ENV = 'env' 24 | CREDENTIAL_TYPE_TOKEN = 'token' 25 | 26 | AUTH_TYPE_OAUTH = 'oauth' 27 | -------------------------------------------------------------------------------- /server/mcp_server_tls/.env_example: -------------------------------------------------------------------------------- 1 | # volcengine 2 | 3 | # or VOLC_ACCESSKEY 4 | AK=your_ak 5 | # or VOLC_SECRETKEY 6 | SK=your_sk 7 | REGION=your_region 8 | ENDPOINT=your_endpoint 9 | TOKEN= 10 | ACCOUNT_ID= 11 | 12 | # tls 13 | PROJECT_ID= 14 | TOPIC_ID= 15 | 16 | # mcp 17 | # DEPLOY_MODE controls deployment mode, default is local 18 | # DEPLOY_MODE=local 19 | # ENABLED_TOOLS can be customized to select which tools to turn on, default is all 20 | # ENABLED_TOOLS=all -------------------------------------------------------------------------------- /server/mcp_server_tls/.gitignore: -------------------------------------------------------------------------------- 1 | # Python-generated files 2 | __pycache__/ 3 | *.py[oc] 4 | build/ 5 | dist/ 6 | wheels/ 7 | *.egg-info 8 | 9 | .python-version 10 | 11 | # vscode settings 12 | .vscode 13 | .devcontainer 14 | 15 | # uv 16 | .venv 17 | 18 | # env 19 | .env 20 | 21 | build.sh 22 | mcp_server_tls.zip -------------------------------------------------------------------------------- /server/mcp_server_tls/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-tls" 3 | version = "0.1.0" 4 | description = "TLS MCP server project" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "httpx>=0.28.1", 9 | "mcp[cli] @ git+https://github.com/zihengli-bytedance/python-sdk.git@temp-for-volc", 10 | "python-dotenv>=1.0.1", 11 | "volcengine>=1.0.175", 12 | ] 13 | 14 | [project.scripts] 15 | mcp-server-tls = "mcp_server_tls.main:main" 16 | 17 | [build-system] 18 | requires = ["hatchling"] 19 | build-backend = "hatchling.build" 20 | 21 | [tool.hatch.metadata] 22 | allow-direct-references = true 23 | 24 | [tool.hatch.build.targets.wheel] 25 | packages = ["src/mcp_server_tls"] -------------------------------------------------------------------------------- /server/mcp_server_tls/requirements.txt: -------------------------------------------------------------------------------- 1 | annotated-types==0.7.0 2 | anyio==4.9.0 3 | beautifulsoup4==4.13.3 4 | certifi==2025.1.31 5 | charset-normalizer==3.4.1 6 | click==8.1.8 7 | decorator==5.2.1 8 | exceptiongroup==1.2.2 9 | google==3.0.0 10 | h11==0.14.0 11 | httpcore==1.0.7 12 | httpx==0.28.1 13 | httpx-sse==0.4.0 14 | idna==3.10 15 | markdown-it-py==3.0.0 16 | mcp @ git+https://github.com/zihengli-bytedance/python-sdk.git@3ff71057c9e60a20f81bfef6bd117f3b3d518f9c 17 | mdurl==0.1.2 18 | protobuf==6.30.1 19 | py==1.11.0 20 | pycryptodome==3.9.9 21 | pydantic==2.10.6 22 | pydantic-core==2.27.2 23 | pydantic-settings==2.8.1 24 | pygments==2.19.1 25 | python-dotenv==1.1.0 26 | pytz==2020.5 27 | requests==2.32.3 28 | retry==0.9.2 29 | rich==13.9.4 30 | shellingham==1.5.4 31 | six==1.17.0 32 | sniffio==1.3.1 33 | soupsieve==2.6 34 | sse-starlette==2.2.1 35 | starlette==0.46.1 36 | typer==0.15.2 37 | typing-extensions==4.12.2 38 | urllib3==2.3.0 39 | uvicorn==0.34.0 40 | volcengine==1.0.175 41 | -------------------------------------------------------------------------------- /server/mcp_server_tls/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | cd `dirname $0` 4 | 5 | cd src 6 | exec python3 -m mcp_server_tls.main -t sse -------------------------------------------------------------------------------- /server/mcp_server_tls/src/mcp_server_tls/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_tls/src/mcp_server_tls/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_tls/src/mcp_server_tls/consts.py: -------------------------------------------------------------------------------- 1 | # 部署方式 2 | DEPLOY_MODE_LOCAL = "local" 3 | DEPLOY_MODE_REMOTE = "remote" 4 | 5 | # API_NAME 6 | API_CREATE_APP_INSTANCE = "/CreateAppInstance" 7 | API_CREATE_APP_SCENE_META = "/CreateAppSceneMeta" 8 | API_DESCRIBE_APP_INSTANCES = "/DescribeAppInstances" 9 | API_DESCRIBE_SESSION_ANSWER = "/DescribeSessionAnswer" -------------------------------------------------------------------------------- /server/mcp_server_tls/src/mcp_server_tls/main.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import argparse 3 | 4 | from mcp_server_tls.config import TLS_CONFIG 5 | from mcp_server_tls.server import mcp 6 | from mcp_server_tls.server import add_resources_to_mcp, add_tools_to_mcp 7 | 8 | logging.basicConfig( 9 | level=logging.INFO, 10 | format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' 11 | ) 12 | 13 | logger = logging.getLogger(__name__) 14 | 15 | def main(): 16 | parser = argparse.ArgumentParser(description="Run the TLS MCP Server") 17 | parser.add_argument( 18 | "--transport", "-t", 19 | choices=["sse", "stdio"], 20 | default="stdio", 21 | help="Transport protocol to use (sse or stdio)" 22 | ) 23 | 24 | args = parser.parse_args() 25 | 26 | # Run the MCP server 27 | logger.info(f"Starting TLS MCP Server with {args.transport} transport, region is {TLS_CONFIG.region}") 28 | 29 | mcp.run(transport=args.transport) 30 | 31 | if __name__ == "__main__": 32 | main() -------------------------------------------------------------------------------- /server/mcp_server_tls/src/mcp_server_tls/tools/__init__.py: -------------------------------------------------------------------------------- 1 | # src/server/tools/__init__.py 2 | 3 | from mcp_server_tls.tools.project import describe_project_tool, describe_projects_tool 4 | 5 | from mcp_server_tls.tools.topic import describe_topic_tool, describe_topics_tool 6 | 7 | from mcp_server_tls.tools.log import search_logs_v2_tool 8 | 9 | from mcp_server_tls.tools.text_analysis import text2sql 10 | 11 | SUPPORT_TOOLS = { 12 | # project 13 | "describe_project_tool": describe_project_tool, 14 | "describe_projects_tool": describe_projects_tool, 15 | # topic 16 | "describe_topic_tool": describe_topic_tool, 17 | "describe_topics_tool": describe_topics_tool, 18 | # log 19 | "search_logs_v2_tool": search_logs_v2_tool, 20 | # text_analysis 21 | "text2sql": text2sql, 22 | } -------------------------------------------------------------------------------- /server/mcp_server_tos/.env_example: -------------------------------------------------------------------------------- 1 | # VolcEngine credentials 2 | VOLCENGINE_ACCESS_KEY=YOUR_ACCESSKEY 3 | VOLCENGINE_SECRET_KEY=YOUR_SECRETKEY 4 | 5 | # TOS endpoint and region 6 | TOS_ENDPOINT=tos-cn-beijing.volces.com 7 | VOLCENGINE_REGION=cn-beijing 8 | 9 | # Optional environment variables 10 | SECURITY_TOKEN=XXX # If you use AssumeRole Credential, you need to set this 11 | TOS_BUCKET=XXX # If you want to use a specific bucket, you need to set this -------------------------------------------------------------------------------- /server/mcp_server_tos/.gitignore: -------------------------------------------------------------------------------- 1 | # Python-generated files 2 | __pycache__/ 3 | *.py[oc] 4 | build/ 5 | dist/ 6 | wheels/ 7 | *.egg-info 8 | 9 | # Virtual environments 10 | .venv 11 | -------------------------------------------------------------------------------- /server/mcp_server_tos/.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /server/mcp_server_tos/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-tos" 3 | version = "0.1.0" 4 | description = "Add your description here" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "httpx>=0.28.1", 9 | "mcp[cli] @ git+https://github.com/zihengli-bytedance/python-sdk.git@temp-for-volc", 10 | "tos>=2.8.1", 11 | "python-dotenv>=1.0.1", 12 | "uvicorn>=0.34.0", 13 | ] 14 | [build-system] 15 | requires = ["hatchling"] 16 | build-backend = "hatchling.build" 17 | 18 | [tool.hatch.metadata] 19 | allow-direct-references = true 20 | 21 | [project.scripts] 22 | mcp-server-tos = "mcp_server_tos.main:main" 23 | -------------------------------------------------------------------------------- /server/mcp_server_tos/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | cd `dirname $0` 4 | 5 | cd src 6 | exec python3 -m mcp_server_tos.main -t sse -------------------------------------------------------------------------------- /server/mcp_server_tos/src/mcp_server_tos/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_tos/src/mcp_server_tos/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_tos/src/mcp_server_tos/credential.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | 3 | 4 | @dataclass 5 | class Credential: 6 | access_key: str 7 | secret_key: str 8 | security_token: str 9 | expired_time: str 10 | -------------------------------------------------------------------------------- /server/mcp_server_tos/src/mcp_server_tos/main.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import argparse 3 | 4 | from mcp_server_tos.server import mcp 5 | 6 | from mcp_server_tos.config import TOS_CONFIG 7 | 8 | # Configure logging 9 | logging.basicConfig( 10 | level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" 11 | ) 12 | logger = logging.getLogger(__name__) 13 | 14 | 15 | def main(): 16 | parser = argparse.ArgumentParser(description="Run the TOS MCP Server") 17 | parser.add_argument( 18 | "--transport", "-t", 19 | choices=["sse", "stdio"], 20 | default="stdio", 21 | help="Transport protocol to use (sse or stdio)" 22 | ) 23 | 24 | args = parser.parse_args() 25 | 26 | try: 27 | # Run the MCP server 28 | logger.info(f"Starting TOS MCP Server") 29 | 30 | mcp.run(transport=args.transport) 31 | except Exception as e: 32 | logger.error(f"Error starting TOS MCP Server: {str(e)}") 33 | raise 34 | 35 | 36 | if __name__ == "__main__": 37 | main() 38 | -------------------------------------------------------------------------------- /server/mcp_server_tos/src/mcp_server_tos/resources/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_tos/src/mcp_server_tos/resources/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "mcp-server-traffic-route": { 4 | "command": "uvx", 5 | "args": [ 6 | "--from", 7 | "git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_traffic_route", 8 | "mcp-server-traffic-route" 9 | ], 10 | "env": { 11 | "VOLCENGINE_ACCESS_KEY": "Your Volcengine AK", 12 | "VOLCENGINE_SECRET_KEY": "Your Volcengine SK" 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | .eden-mono/ 4 | 5 | .pnp 6 | .pnp.js 7 | .env.local 8 | .env.*.local 9 | .history 10 | .rts* 11 | *.log* 12 | *.pid 13 | *.pid.* 14 | *.report 15 | *.lcov 16 | lib-cov 17 | 18 | node_modules/ 19 | .npm 20 | .lock-wscript 21 | .yarn-integrity 22 | .node_repl_history 23 | .nyc_output 24 | *.tsbuildinfo 25 | .eslintcache 26 | .sonarlint 27 | yarn.lock 28 | package-lock.json 29 | 30 | dist/ 31 | coverage/ 32 | release/ 33 | output/ 34 | output_resource/ 35 | 36 | .vscode/**/* 37 | !.vscode/settings.json 38 | !.vscode/extensions.json 39 | .idea/ 40 | 41 | **/*/typings/auto-generated 42 | 43 | .changeset/pre.json 44 | 45 | .pnpm-store/ 46 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | .pnp 4 | .pnp.js 5 | .evn.local 6 | .env.*.local 7 | .history 8 | .rts* 9 | *.log* 10 | *.pid 11 | *.pid.* 12 | *.report 13 | *.lcov 14 | lib-cov 15 | 16 | doc_build/ 17 | node_modules/ 18 | .npm 19 | .lock-wscript 20 | .yarn-integrity 21 | .node_repl_history 22 | .nyc_output 23 | *.tsbuildinfo 24 | .eslintcache 25 | .sonarlint 26 | 27 | coverage/ 28 | release/ 29 | output/ 30 | output_resource/ 31 | 32 | .vscode/**/* 33 | !.vscode/settings.json 34 | !.vscode/extensions.json 35 | .idea/ 36 | 37 | **/*/api/typings/auto-generated 38 | **/*/adapters/**/index.ts 39 | **/*/adapters/**/index.js 40 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './server'; 2 | 3 | import { registerServices, registerTools } from './registry'; 4 | 5 | (function() { 6 | registerServices(); 7 | registerTools(); 8 | })(); 9 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/registry.ts: -------------------------------------------------------------------------------- 1 | import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; 2 | import { registerServices as reg, addProxyTools } from './utils/tools'; 3 | import { computeTools, veenEdgeService } from './tools/veen/compute'; 4 | import { trafficRouteTools, trafficRouteService } from './tools/tr/all'; 5 | 6 | /** 7 | * Registers all tools. 8 | */ 9 | export function registerTools(server?: McpServer) { 10 | addProxyTools(computeTools, server); 11 | addProxyTools(trafficRouteTools, server); 12 | 13 | } 14 | 15 | /** 16 | * Registers all services. 17 | */ 18 | export function registerServices() { 19 | reg({ 20 | [veenEdgeService]: { 21 | serviceName: veenEdgeService, 22 | defaultVersion: '2021-04-30', 23 | }, 24 | [trafficRouteService]: { 25 | serviceName: 'dns', 26 | defaultVersion: '2018-08-01', 27 | }, 28 | 'domain': { 29 | serviceName: 'domain_openapi', 30 | defaultVersion: '2022-12-12', 31 | }, 32 | 'ssl': { 33 | region: 'cn-beijing', 34 | serviceName: 'certificate_service', 35 | defaultVersion: '2024-10-01', 36 | }, 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/schema/common.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | export const searchMode = z.enum(['like', 'exact']).describe('搜索模式(包括模糊搜索和精确匹配)'); 4 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/sdk/base/fetch.ts: -------------------------------------------------------------------------------- 1 | import axios, { AxiosRequestConfig } from "axios"; 2 | import { createDebug, packageVersion } from "./utils"; 3 | import { OpenApiResponse } from "./types"; 4 | 5 | const debug = createDebug("fetch"); 6 | const ua = `volc-sdk-nodejs/v${packageVersion}`; 7 | 8 | export default async function request( 9 | url: string, 10 | reqInfo: AxiosRequestConfig 11 | ): Promise> { 12 | const { headers = {} } = reqInfo; 13 | const reqOption: AxiosRequestConfig = { 14 | url: url.trim(), 15 | timeout: 10000, 16 | ...reqInfo, 17 | proxy: process.env.VOLC_PROXY_PORT 18 | ? { 19 | protocol: "http", 20 | host: process.env.VOLC_PROXY_HOST || "127.0.0.1", 21 | port: +process.env.VOLC_PROXY_PORT, 22 | } 23 | : undefined, 24 | headers: { 25 | "Content-Type": "application/x-www-form-urlencoded", 26 | ...headers, 27 | "User-Agent": ua, 28 | }, 29 | validateStatus: null, 30 | }; 31 | debug("fetch begin. options: %j", reqOption); 32 | const res = await axios(reqOption); 33 | const body = res.data; 34 | debug("fetch end. headers: %j response: %j", res.headers, body); 35 | return body; 36 | } 37 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/sdk/index.ts: -------------------------------------------------------------------------------- 1 | import Service from "./base/service"; 2 | import Signer from "./base/sign"; 3 | export { 4 | Service, 5 | Signer, 6 | }; 7 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/sdk/typings.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.json"; 2 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/server.ts: -------------------------------------------------------------------------------- 1 | import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; 2 | import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; 3 | 4 | /** 5 | * The model context protocol server. 6 | */ 7 | export const server = new McpServer({ 8 | name: 'volcano-edge-mcp', 9 | version: '1.0.0' 10 | }); 11 | 12 | /** 13 | * Runs the server. 14 | * @param transport The optional standard I/O server transport. 15 | */ 16 | export async function init(transport: StdioServerTransport) { 17 | if (!transport) { 18 | transport = new StdioServerTransport(); 19 | } 20 | 21 | await server.connect(transport); 22 | } 23 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/tools/veen/compute.ts: -------------------------------------------------------------------------------- 1 | import z from "zod"; 2 | import * as zCommon from '../../schema/common'; 3 | import type { IProxyToolModel } from "../../utils/tools"; 4 | 5 | /** 6 | * The service name. 7 | */ 8 | export const veenEdgeService = 'veenedge'; 9 | 10 | /** 11 | * All related MCP tools. 12 | */ 13 | export const computeTools: IProxyToolModel[] = [ 14 | { 15 | name: 'get-cloud-server', 16 | description: '获取边缘服务(边缘计算节点)的详细信息。', 17 | args: { 18 | cloud_server_identity: z.string().describe('边缘服务的 ID'), 19 | }, 20 | action: 'GetCloudServer', 21 | service: veenEdgeService, 22 | method: 'GET', 23 | }, 24 | { 25 | name: 'list-account-cloud-servers', 26 | description: '获取当前用户所有的边缘服务(边缘计算节点)。', 27 | args: { 28 | }, 29 | action: 'ListAccountCloudServers', 30 | service: veenEdgeService, 31 | method: 'POST', 32 | }, 33 | { 34 | name: 'check-cloud-server-name', 35 | description: '检查边缘计算节点的名称是否已经存在。', 36 | args: { 37 | name: z.string().describe('名称,用于检查是否已经存在。'), 38 | }, 39 | action: 'CheckCloudServerName', 40 | service: veenEdgeService, 41 | method: 'POST', 42 | }, 43 | ]; 44 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/utils/en.ts: -------------------------------------------------------------------------------- 1 | import { ILocaleStrings } from './interfaces'; 2 | 3 | /** 4 | * Locale strings. 5 | */ 6 | export const strings: ILocaleStrings = { 7 | resultInJson: 'The result is in following JSON.', 8 | reasonFollowing: 'The reason of error is following.', 9 | failAccessRes: 'Failed to access the resouce.', 10 | failAction: 'Failed to process the action.', 11 | noResponse: 'No response.', 12 | }; 13 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/utils/hans.ts: -------------------------------------------------------------------------------- 1 | import { ILocaleStrings } from './interfaces'; 2 | 3 | /** 4 | * Locale strings. 5 | */ 6 | export const strings: ILocaleStrings = { 7 | resultInJson: '结果位于以下 JSON 中。', 8 | reasonFollowing: '错误原因如下。', 9 | failAccessRes: '无法访问相关资源。', 10 | failAction: '无法完成当前操作。', 11 | noResponse: '没有返回结果。', 12 | }; -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/utils/interfaces.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The locale strings. 3 | */ 4 | export interface ILocaleStrings { 5 | resultInJson: string; 6 | reasonFollowing: string; 7 | failAccessRes: string; 8 | failAction: string; 9 | noResponse: string; 10 | } 11 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/src/utils/lang.ts: -------------------------------------------------------------------------------- 1 | import type { ILocaleStrings } from "./interfaces"; 2 | import { Resources } from "langpack"; 3 | import { strings as hansStrings } from './hans'; 4 | import { strings as enStrings } from './en'; 5 | 6 | const settings = { 7 | hasInit: false 8 | }; 9 | 10 | /** 11 | * The resources. 12 | */ 13 | export const res = new Resources(); 14 | 15 | /** 16 | * Initializes the language pack. 17 | */ 18 | export function init(force = false) { 19 | if (settings.hasInit && !force) return; 20 | settings.hasInit = true; 21 | res.register({ 22 | language: 'en', 23 | strings: enStrings, 24 | }); 25 | res.register({ 26 | language: ['zh-Hans', 'zh-CN', 'zh-SG'], 27 | strings: hansStrings, 28 | }); 29 | } 30 | 31 | /** 32 | * Gets the locale string. 33 | * @param key The key of resource. 34 | * @returns A string in local language. 35 | */ 36 | export function getString(key: keyof(ILocaleStrings)) { 37 | init(); 38 | return res.getLocaleString(key); 39 | } 40 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/nodejs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "module": "NodeNext", 5 | "moduleResolution": "NodeNext", 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "strict": false, 9 | "esModuleInterop": true, 10 | "skipLibCheck": true, 11 | "noEmitOnError": false, 12 | "forceConsistentCasingInFileNames": true, 13 | "allowJs": true 14 | }, 15 | "include": ["src/**/*"], 16 | "exclude": ["node_modules"] 17 | } 18 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-traffic-route" 3 | version = "0.1.0" 4 | description = "Apply, configure, and query for edge computing nodes, including virtual machines, images, bare metal, and corresponding network configurations." 5 | readme = "../README.md" 6 | requires-python = ">=3.11" 7 | dependencies = [ 8 | "mcp>=1.6.0", 9 | "pydantic>=2.11.3", 10 | "python-dotenv>=1.1.0", 11 | "retry>=0.9.2", 12 | "starlette>=0.46.2", 13 | "volcengine>=1.0.180", 14 | ] 15 | 16 | [build-system] 17 | requires = ["setuptools>=61.0"] 18 | build-backend = "setuptools.build_meta" 19 | 20 | [tool.setuptools.packages.find] 21 | where = ["."] -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/scripts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_traffic_route/python/scripts/.gitkeep -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/scripts/run.sh: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/bash 3 | 4 | # 获取脚本所在目录并切换到该目录 5 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 6 | cd "$SCRIPT_DIR" 7 | echo "当前目录: $SCRIPT_DIR" 8 | source ../.venv/bin/activate 9 | uv run ../vcloud/traffic_route/server.py 10 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_traffic_route/python/vcloud/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_traffic_route/python/vcloud/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/base/aksk.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def get_ak(): 4 | s = os.getenv("VOLCENGINE_ACCESS_KEY") 5 | if (s is None): 6 | s = os.getenv("VOLC_ACCESS_KEY_ID") 7 | return s 8 | 9 | def get_sk(): 10 | s = os.getenv("VOLCENGINE_SECRET_KEY") 11 | if (s is None): 12 | s = os.getenv("VOLC_ACCESS_KEY_SECRET") 13 | return s 14 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from vcloud.base.base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/traffic_route/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_traffic_route/python/vcloud/traffic_route/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/traffic_route/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_traffic_route/python/vcloud/traffic_route/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/traffic_route/api/api.py: -------------------------------------------------------------------------------- 1 | from vcloud.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | class TrafficRouteAPI(BaseService): 6 | 7 | def __init__(self): 8 | if os.getenv("VOLCENGINE_REGION") is None: 9 | region = "cn-north-1" 10 | else: 11 | region = os.getenv("VOLCENGINE_REGION") 12 | 13 | super().__init__( 14 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 15 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 16 | region=region, 17 | service_info_map=service_info_map, 18 | ) 19 | self.set_api_info(api_info) 20 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/traffic_route/api/config.py: -------------------------------------------------------------------------------- 1 | from volcengine.ServiceInfo import ServiceInfo 2 | from volcengine.Credentials import Credentials 3 | from volcengine.ApiInfo import ApiInfo 4 | 5 | api_info = { 6 | "McpListZones": ApiInfo( 7 | "POST", "/", {"Action": "ListZones", "Version": "2018-08-01"}, {}, {} 8 | ), 9 | "McpCreateZone": ApiInfo( 10 | "POST", "/", {"Action": "CreateZone", "Version": "2018-08-01"}, {}, {} 11 | ), 12 | "McpCreateRecord": ApiInfo( 13 | "POST", "/", {"Action": "CreateRecord", "Version": "2018-08-01"}, {}, {} 14 | ), 15 | "McpUpdateRecord": ApiInfo( 16 | "POST", "/", {"Action": "UpdateRecord", "Version": "2018-08-01"}, {}, {} 17 | ), 18 | "McpListRecords": ApiInfo( 19 | "POST", "/", {"Action": "ListRecords", "Version": "2018-08-01"}, {}, {} 20 | ), 21 | } 22 | service_info_map = { 23 | "cn-north-1": ServiceInfo( 24 | "dns.volcengineapi.com", 25 | {"Accept": "application/json", "x-tt-mcp": "volc"}, 26 | Credentials("", "", "dns", "cn-north-1"), 27 | 60, 28 | 60, 29 | "http", 30 | ), 31 | } 32 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/traffic_route/note.py: -------------------------------------------------------------------------------- 1 | note = { 2 | "list_zones": r""" 3 | Args: 4 | body: A JSON structure 5 | key ( String ): 否 搜索关键词。 6 | searchMode ( String ): 否 如果值为 like,则为模糊匹配;如果值为 exact,则为精确匹配。 7 | """, 8 | "create_zone": r""" 9 | Args: 10 | body: A JSON structure 11 | zoneName ( String ): 是 域名。 12 | """, 13 | "create_record": r""" 14 | Args: 15 | body: A JSON structure 16 | ZID ( String ): 是 关联的域名 ID。 17 | Host ( String ): 是 主机名。 18 | Type ( String ): 是 解析记录类型。 19 | Value ( String ): 是 解析记录值。 20 | TTL ( Long ): 否 生存时间,单位为秒。默认值为 600。 21 | Weight ( Float ): 否 权重。默认值为 1。 22 | """, 23 | "list_records": r""" 24 | body: A JSON structure 25 | ZID ( String ): 是 关联的域名 ID。 26 | """, 27 | } 28 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/traffic_route/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from vcloud.veenedge.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | 7 | load_dotenv() 8 | 9 | mcp = create_mcp_server() 10 | if __name__ == "__main__": 11 | asyncio.run(mcp.run()) 12 | -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_traffic_route/python/vcloud/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_traffic_route/python/vcloud/utils/response.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | 4 | def Error(message: str): 5 | return "API Error: " + message 6 | 7 | 8 | def HandlerVolcResponse(response: dict): 9 | if not response: 10 | return Error("Empty response") 11 | 12 | json_response = response if not isinstance(response, str) else json.loads(response) 13 | error = json_response.get("ResponseMetadata", {}).get("Error") 14 | 15 | if error and isinstance(error, dict): 16 | message = error.get("Message", "Unknown error") 17 | return Error(message) 18 | 19 | return str(response) -------------------------------------------------------------------------------- /server/mcp_server_veapig/.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .nox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | *.py,cover 48 | .hypothesis/ 49 | .pytest_cache/ 50 | cover/ 51 | 52 | # Environments 53 | .env 54 | .venv 55 | env/ 56 | venv/ 57 | ENV/ 58 | env.bak/ 59 | venv.bak/ 60 | 61 | # VSCode 62 | .vscode/* 63 | !.vscode/settings.json 64 | !.vscode/tasks.json 65 | !.vscode/launch.json 66 | !.vscode/extensions.json 67 | 68 | # Temp files and zip files 69 | *.zip 70 | *.tmp 71 | function.zip 72 | index.py -------------------------------------------------------------------------------- /server/mcp_server_veapig/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veapig/logo.png -------------------------------------------------------------------------------- /server/mcp_server_veapig/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "veapig": { 4 | "command": "uvx", 5 | "args": [ 6 | "--from", 7 | "git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_veapig", 8 | "mcp-server-veapig" 9 | ], 10 | "env": { 11 | "VOLCENGINE_ACCESS_KEY": "xxx", 12 | "VOLCENGINE_SECRET_KEY": "xxx" 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /server/mcp_server_veapig/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-veapig" 3 | version = "0.0.1" 4 | description = "MCP server for managing APIG" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "mcp @ git+https://github.com/zihengli-bytedance/python-sdk.git@temp-for-volc", 9 | "volcengine-python-sdk>=3.0.8", 10 | "requests==2.32.3", 11 | "pyzipper==0.3.6" 12 | ] 13 | 14 | [project.scripts] 15 | mcp-server-veapig = "mcp_server_veapig.stdio:main" 16 | 17 | [build-system] 18 | requires = ["hatchling"] 19 | build-backend = "hatchling.build" 20 | 21 | [tool.hatch.metadata] 22 | allow-direct-references = true 23 | -------------------------------------------------------------------------------- /server/mcp_server_veapig/src/mcp_server_veapig/.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /server/mcp_server_veapig/src/mcp_server_veapig/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veapig/src/mcp_server_veapig/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veapig/src/mcp_server_veapig/sse.py: -------------------------------------------------------------------------------- 1 | from .veapig_server import mcp 2 | 3 | def main(): 4 | mcp.run(transport="sse") 5 | 6 | if __name__ == "__main__": 7 | main() 8 | -------------------------------------------------------------------------------- /server/mcp_server_veapig/src/mcp_server_veapig/stdio.py: -------------------------------------------------------------------------------- 1 | from .veapig_server import mcp 2 | import logging 3 | 4 | logging.basicConfig( 5 | level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" 6 | ) 7 | logger = logging.getLogger(__name__) 8 | 9 | def main(): 10 | logger.info("veAPIG MCP Server started") 11 | 12 | mcp.run(transport="stdio") 13 | 14 | if __name__ == "__main__": 15 | main() 16 | -------------------------------------------------------------------------------- /server/mcp_server_veapig/src/mcp_server_veapig/veapig_server_test.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import io 3 | import unittest 4 | import os 5 | import zipfile 6 | 7 | 8 | if __name__ == "__main__": 9 | pass 10 | -------------------------------------------------------------------------------- /server/mcp_server_vedb_mysql/.python-version: -------------------------------------------------------------------------------- 1 | 3.10.16 2 | -------------------------------------------------------------------------------- /server/mcp_server_vedb_mysql/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vedb-mysql" 3 | version = "1.0.0" 4 | description = "MCP server for VeDB MySQL" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | license = {text = "MIT"} 8 | dependencies = [ 9 | "mcp[cli]>=1.5.0", 10 | "volcengine-python-sdk>=3.0.6", 11 | "aiohttp>=3.11.14", 12 | "deprecated>=1.2.18", 13 | ] 14 | 15 | [project.scripts] 16 | mcp-server-vedbm = "mcp_server_vedb_mysql.server:main" 17 | 18 | [build-system] 19 | requires = ["hatchling"] 20 | build-backend = "hatchling.build" 21 | -------------------------------------------------------------------------------- /server/mcp_server_vedb_mysql/src/mcp_server_vedb_mysql/__init__.py: -------------------------------------------------------------------------------- 1 | # Package initialization 2 | -------------------------------------------------------------------------------- /server/mcp_server_veen/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "mcp-server-veen": { 4 | "command": "uvx", 5 | "args": [ 6 | "--from", 7 | "git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_veen", 8 | "mcp-server-veen" 9 | ], 10 | "env": { 11 | "VOLCENGINE_ACCESS_KEY": "Your Volcengine AK", 12 | "VOLCENGINE_SECRET_KEY": "Your Volcengine SK" 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | .eden-mono/ 4 | 5 | .pnp 6 | .pnp.js 7 | .env.local 8 | .env.*.local 9 | .history 10 | .rts* 11 | *.log* 12 | *.pid 13 | *.pid.* 14 | *.report 15 | *.lcov 16 | lib-cov 17 | 18 | node_modules/ 19 | .npm 20 | .lock-wscript 21 | .yarn-integrity 22 | .node_repl_history 23 | .nyc_output 24 | *.tsbuildinfo 25 | .eslintcache 26 | .sonarlint 27 | yarn.lock 28 | package-lock.json 29 | 30 | dist/ 31 | coverage/ 32 | release/ 33 | output/ 34 | output_resource/ 35 | 36 | .vscode/**/* 37 | !.vscode/settings.json 38 | !.vscode/extensions.json 39 | .idea/ 40 | 41 | **/*/typings/auto-generated 42 | 43 | .changeset/pre.json 44 | 45 | .pnpm-store/ 46 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | .pnp 4 | .pnp.js 5 | .evn.local 6 | .env.*.local 7 | .history 8 | .rts* 9 | *.log* 10 | *.pid 11 | *.pid.* 12 | *.report 13 | *.lcov 14 | lib-cov 15 | 16 | doc_build/ 17 | node_modules/ 18 | .npm 19 | .lock-wscript 20 | .yarn-integrity 21 | .node_repl_history 22 | .nyc_output 23 | *.tsbuildinfo 24 | .eslintcache 25 | .sonarlint 26 | 27 | coverage/ 28 | release/ 29 | output/ 30 | output_resource/ 31 | 32 | .vscode/**/* 33 | !.vscode/settings.json 34 | !.vscode/extensions.json 35 | .idea/ 36 | 37 | **/*/api/typings/auto-generated 38 | **/*/adapters/**/index.ts 39 | **/*/adapters/**/index.js 40 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './server'; 2 | 3 | import { registerServices, registerTools } from './registry'; 4 | 5 | (function() { 6 | registerServices(); 7 | registerTools(); 8 | })(); 9 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/registry.ts: -------------------------------------------------------------------------------- 1 | import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; 2 | import { registerServices as reg, addProxyTools } from './utils/tools'; 3 | import { computeTools, veenEdgeService } from './tools/veen/compute'; 4 | import { trafficRouteTools, trafficRouteService } from './tools/tr/all'; 5 | 6 | /** 7 | * Registers all tools. 8 | */ 9 | export function registerTools(server?: McpServer) { 10 | addProxyTools(computeTools, server); 11 | addProxyTools(trafficRouteTools, server); 12 | 13 | } 14 | 15 | /** 16 | * Registers all services. 17 | */ 18 | export function registerServices() { 19 | reg({ 20 | [veenEdgeService]: { 21 | serviceName: veenEdgeService, 22 | defaultVersion: '2021-04-30', 23 | }, 24 | [trafficRouteService]: { 25 | serviceName: 'dns', 26 | defaultVersion: '2018-08-01', 27 | }, 28 | 'domain': { 29 | serviceName: 'domain_openapi', 30 | defaultVersion: '2022-12-12', 31 | }, 32 | 'ssl': { 33 | region: 'cn-beijing', 34 | serviceName: 'certificate_service', 35 | defaultVersion: '2024-10-01', 36 | }, 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/schema/common.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | export const searchMode = z.enum(['like', 'exact']).describe('搜索模式(包括模糊搜索和精确匹配)'); 4 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/sdk/base/fetch.ts: -------------------------------------------------------------------------------- 1 | import axios, { AxiosRequestConfig } from "axios"; 2 | import { createDebug, packageVersion } from "./utils"; 3 | import { OpenApiResponse } from "./types"; 4 | 5 | const debug = createDebug("fetch"); 6 | const ua = `volc-sdk-nodejs/v${packageVersion}`; 7 | 8 | export default async function request( 9 | url: string, 10 | reqInfo: AxiosRequestConfig 11 | ): Promise> { 12 | const { headers = {} } = reqInfo; 13 | const reqOption: AxiosRequestConfig = { 14 | url: url.trim(), 15 | timeout: 10000, 16 | ...reqInfo, 17 | proxy: process.env.VOLC_PROXY_PORT 18 | ? { 19 | protocol: "http", 20 | host: process.env.VOLC_PROXY_HOST || "127.0.0.1", 21 | port: +process.env.VOLC_PROXY_PORT, 22 | } 23 | : undefined, 24 | headers: { 25 | "Content-Type": "application/x-www-form-urlencoded", 26 | ...headers, 27 | "User-Agent": ua, 28 | }, 29 | validateStatus: null, 30 | }; 31 | debug("fetch begin. options: %j", reqOption); 32 | const res = await axios(reqOption); 33 | const body = res.data; 34 | debug("fetch end. headers: %j response: %j", res.headers, body); 35 | return body; 36 | } 37 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/sdk/index.ts: -------------------------------------------------------------------------------- 1 | import Service from "./base/service"; 2 | import Signer from "./base/sign"; 3 | export { 4 | Service, 5 | Signer, 6 | }; 7 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/sdk/typings.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.json"; 2 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/server.ts: -------------------------------------------------------------------------------- 1 | import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; 2 | import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; 3 | 4 | /** 5 | * The model context protocol server. 6 | */ 7 | export const server = new McpServer({ 8 | name: 'volcano-edge-mcp', 9 | version: '1.0.0' 10 | }); 11 | 12 | /** 13 | * Runs the server. 14 | * @param transport The optional standard I/O server transport. 15 | */ 16 | export async function init(transport: StdioServerTransport) { 17 | if (!transport) { 18 | transport = new StdioServerTransport(); 19 | } 20 | 21 | await server.connect(transport); 22 | } 23 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/tools/veen/compute.ts: -------------------------------------------------------------------------------- 1 | import z from "zod"; 2 | import * as zCommon from '../../schema/common'; 3 | import type { IProxyToolModel } from "../../utils/tools"; 4 | 5 | /** 6 | * The service name. 7 | */ 8 | export const veenEdgeService = 'veenedge'; 9 | 10 | /** 11 | * All related MCP tools. 12 | */ 13 | export const computeTools: IProxyToolModel[] = [ 14 | { 15 | name: 'get-cloud-server', 16 | description: '获取边缘服务(边缘计算节点)的详细信息。', 17 | args: { 18 | cloud_server_identity: z.string().describe('边缘服务的 ID'), 19 | }, 20 | action: 'GetCloudServer', 21 | service: veenEdgeService, 22 | method: 'GET', 23 | }, 24 | { 25 | name: 'list-account-cloud-servers', 26 | description: '获取当前用户所有的边缘服务(边缘计算节点)。', 27 | args: { 28 | }, 29 | action: 'ListAccountCloudServers', 30 | service: veenEdgeService, 31 | method: 'POST', 32 | }, 33 | { 34 | name: 'check-cloud-server-name', 35 | description: '检查边缘计算节点的名称是否已经存在。', 36 | args: { 37 | name: z.string().describe('名称,用于检查是否已经存在。'), 38 | }, 39 | action: 'CheckCloudServerName', 40 | service: veenEdgeService, 41 | method: 'POST', 42 | }, 43 | ]; 44 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/utils/en.ts: -------------------------------------------------------------------------------- 1 | import { ILocaleStrings } from './interfaces'; 2 | 3 | /** 4 | * Locale strings. 5 | */ 6 | export const strings: ILocaleStrings = { 7 | resultInJson: 'The result is in following JSON.', 8 | reasonFollowing: 'The reason of error is following.', 9 | failAccessRes: 'Failed to access the resouce.', 10 | failAction: 'Failed to process the action.', 11 | noResponse: 'No response.', 12 | }; 13 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/utils/hans.ts: -------------------------------------------------------------------------------- 1 | import { ILocaleStrings } from './interfaces'; 2 | 3 | /** 4 | * Locale strings. 5 | */ 6 | export const strings: ILocaleStrings = { 7 | resultInJson: '结果位于以下 JSON 中。', 8 | reasonFollowing: '错误原因如下。', 9 | failAccessRes: '无法访问相关资源。', 10 | failAction: '无法完成当前操作。', 11 | noResponse: '没有返回结果。', 12 | }; -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/utils/interfaces.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The locale strings. 3 | */ 4 | export interface ILocaleStrings { 5 | resultInJson: string; 6 | reasonFollowing: string; 7 | failAccessRes: string; 8 | failAction: string; 9 | noResponse: string; 10 | } 11 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/src/utils/lang.ts: -------------------------------------------------------------------------------- 1 | import type { ILocaleStrings } from "./interfaces"; 2 | import { Resources } from "langpack"; 3 | import { strings as hansStrings } from './hans'; 4 | import { strings as enStrings } from './en'; 5 | 6 | const settings = { 7 | hasInit: false 8 | }; 9 | 10 | /** 11 | * The resources. 12 | */ 13 | export const res = new Resources(); 14 | 15 | /** 16 | * Initializes the language pack. 17 | */ 18 | export function init(force = false) { 19 | if (settings.hasInit && !force) return; 20 | settings.hasInit = true; 21 | res.register({ 22 | language: 'en', 23 | strings: enStrings, 24 | }); 25 | res.register({ 26 | language: ['zh-Hans', 'zh-CN', 'zh-SG'], 27 | strings: hansStrings, 28 | }); 29 | } 30 | 31 | /** 32 | * Gets the locale string. 33 | * @param key The key of resource. 34 | * @returns A string in local language. 35 | */ 36 | export function getString(key: keyof(ILocaleStrings)) { 37 | init(); 38 | return res.getLocaleString(key); 39 | } 40 | -------------------------------------------------------------------------------- /server/mcp_server_veen/nodejs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "module": "NodeNext", 5 | "moduleResolution": "NodeNext", 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "strict": false, 9 | "esModuleInterop": true, 10 | "skipLibCheck": true, 11 | "noEmitOnError": false, 12 | "forceConsistentCasingInFileNames": true, 13 | "allowJs": true 14 | }, 15 | "include": ["src/**/*"], 16 | "exclude": ["node_modules"] 17 | } 18 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/base/aksk.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def get_ak(): 4 | s = os.getenv("VOLCENGINE_ACCESS_KEY") 5 | if (s is None): 6 | s = os.getenv("VOLCENGINE_ACCESS_KEY_ID") 7 | return s 8 | 9 | def get_sk(): 10 | s = os.getenv("VOLCENGINE_SECRET_KEY") 11 | if (s is None): 12 | s = os.getenv("VOLCENGINE_SECRET_KEY_SECRET") 13 | return s 14 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from vcloud.base.base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/build/lib/vcloud/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/utils/response.py: -------------------------------------------------------------------------------- 1 | def Error(message: str): 2 | return "API Error: " + message 3 | 4 | 5 | def HandlerVolcResponse(response: dict): 6 | if ( 7 | response 8 | and response.get("ResponseMetadata") 9 | and response["ResponseMetadata"] 10 | and response["ResponseMetadata"].get("Error") 11 | and response["ResponseMetadata"]["Error"] 12 | ): 13 | return Error(response["ResponseMetadata"]["Error"]["Message"]) 14 | return str(response) 15 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/veen/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/build/lib/vcloud/veen/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/veen/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/build/lib/vcloud/veen/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/veen/api/api.py: -------------------------------------------------------------------------------- 1 | from vcloud.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class VeenedgeAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/build/lib/vcloud/veen/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from vcloud.veen.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | 9 | load_dotenv() 10 | 11 | 12 | def main(): 13 | try: 14 | parser = argparse.ArgumentParser(description="Run the VEEN MCP Server") 15 | parser.add_argument( 16 | "--transport", 17 | "-t", 18 | choices=["sse", "stdio"], 19 | default="stdio", 20 | help="Transport protocol to use (sse or stdio)", 21 | ) 22 | args = parser.parse_args() 23 | print(args.transport) 24 | mcp = create_mcp_server() 25 | asyncio.run(mcp.run(transport=args.transport)) 26 | except Exception as e: 27 | print(f"Error occurred while starting the server: {e}", file=sys.stderr) 28 | sys.exit(1) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/pyproject.toml: -------------------------------------------------------------------------------- 1 | 2 | [project] 3 | name = "mcp-server-veen" 4 | version = "0.1.0" 5 | description = "MCP server for veen" 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "pydantic>=2.11.3", 11 | "python-dotenv>=1.1.0", 12 | "retry>=0.9.2", 13 | "starlette>=0.46.2", 14 | "volcengine>=1.0.180", 15 | ] 16 | 17 | [project.scripts] 18 | mcp-server-veen= "vcloud.veen.server:main" 19 | 20 | 21 | [build-system] 22 | requires = ["setuptools>=61.0"] 23 | build-backend = "setuptools.build_meta" 24 | 25 | [tool.setuptools.packages.find] 26 | where = ["."] 27 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/scripts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/scripts/.gitkeep -------------------------------------------------------------------------------- /server/mcp_server_veen/python/scripts/run.sh: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/bash 3 | 4 | # 获取脚本所在目录并切换到该目录 5 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 6 | cd "$SCRIPT_DIR" 7 | echo "当前目录: $SCRIPT_DIR" 8 | source ../.venv/bin/activate 9 | uv run ../vcloud/veen/server.py 10 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/vcloud/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/vcloud/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/base/aksk.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def get_ak(): 4 | s = os.getenv("VOLCENGINE_ACCESS_KEY") 5 | if (s is None): 6 | s = os.getenv("VOLC_ACCESS_KEY_ID") 7 | return s 8 | 9 | def get_sk(): 10 | s = os.getenv("VOLCENGINE_SECRET_KEY") 11 | if (s is None): 12 | s = os.getenv("VOLC_ACCESS_KEY_SECRET") 13 | return s 14 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from vcloud.base.base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/vcloud/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/utils/response.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | 4 | def Error(message: str): 5 | return "API Error: " + message 6 | 7 | 8 | def HandlerVolcResponse(response: dict): 9 | if not response: 10 | return Error("Empty response") 11 | 12 | json_response = response if not isinstance(response, str) else json.loads(response) 13 | error = json_response.get("ResponseMetadata", {}).get("Error") 14 | 15 | if error and isinstance(error, dict): 16 | message = error.get("Message", "Unknown error") 17 | return Error(message) 18 | 19 | return str(response) -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/veen/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/vcloud/veen/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/veen/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veen/python/vcloud/veen/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/veen/api/api.py: -------------------------------------------------------------------------------- 1 | from vcloud.base.base_service import BaseService 2 | from .config import * 3 | import os 4 | 5 | 6 | class VeenedgeAPI(BaseService): 7 | 8 | def __init__(self): 9 | if os.getenv("VOLCENGINE_REGION") is None: 10 | region = "cn-north-1" 11 | else: 12 | region = os.getenv("VOLCENGINE_REGION") 13 | 14 | super().__init__( 15 | ak=os.getenv("VOLCENGINE_ACCESS_KEY"), 16 | sk=os.getenv("VOLCENGINE_SECRET_KEY"), 17 | region=region, 18 | service_info_map=service_info_map, 19 | ) 20 | self.set_api_info(api_info) 21 | -------------------------------------------------------------------------------- /server/mcp_server_veen/python/vcloud/veen/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from vcloud.veen.mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | 9 | load_dotenv() 10 | 11 | 12 | def main(): 13 | try: 14 | parser = argparse.ArgumentParser(description="Run the VEEN MCP Server") 15 | parser.add_argument( 16 | "--transport", 17 | "-t", 18 | choices=["sse", "stdio"], 19 | default="stdio", 20 | help="Transport protocol to use (sse or stdio)", 21 | ) 22 | args = parser.parse_args() 23 | print(args.transport) 24 | mcp = create_mcp_server() 25 | asyncio.run(mcp.run(transport=args.transport)) 26 | except Exception as e: 27 | print(f"Error occurred while starting the server: {e}", file=sys.stderr) 28 | sys.exit(1) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_browser_use/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "vefaas-browser-use": { 4 | "command": "uvx", 5 | "args": [ 6 | "--from", 7 | "git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_vefaas_browser_use", 8 | "mcp-server-vefaas-browser-use" 9 | ], 10 | "env": { 11 | "BROWSER_USE_ENDPOINT": "https://xxxxxxxxxxx.apigateway-cn-beijing.volceapi.com" 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /server/mcp_server_vefaas_browser_use/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vefaas-browser-use" 3 | version = "0.0.1" 4 | description = "MCP server for automating browser operations" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "mcp>=1.9.0", 9 | "requests==2.32.3" 10 | ] 11 | 12 | [project.scripts] 13 | mcp-server-vefaas-browser-use = "mcp_server_vefaas_browser_use.server:main" 14 | 15 | [build-system] 16 | requires = ["hatchling"] 17 | build-backend = "hatchling.build" 18 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_browser_use/src/mcp_server_vefaas_browser_use/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | MCP Server for VeFaaS Browser Use 3 | 4 | This package provides MCP server functionality for automating browser operations in VeFaaS. 5 | """ 6 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .nox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | *.py,cover 48 | .hypothesis/ 49 | .pytest_cache/ 50 | cover/ 51 | 52 | # Environments 53 | .env 54 | .venv 55 | env/ 56 | venv/ 57 | ENV/ 58 | env.bak/ 59 | venv.bak/ 60 | 61 | # VSCode 62 | .vscode/* 63 | !.vscode/settings.json 64 | !.vscode/tasks.json 65 | !.vscode/launch.json 66 | !.vscode/extensions.json 67 | 68 | # Temp files and zip files 69 | *.zip 70 | *.tmp 71 | function.zip 72 | index.py -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vefaas_function/logo.png -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "vefaas": { 4 | "command": "uvx", 5 | "args": [ 6 | "--from", 7 | "git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_vefaas_function", 8 | "mcp-server-vefaas-function" 9 | ], 10 | "env": { 11 | "VOLCENGINE_ACCESS_KEY": "xxx", 12 | "VOLCENGINE_SECRET_KEY": "xxx" 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vefaas-function" 3 | version = "0.0.1" 4 | description = "MCP server for managing veFaaS (Volc Engine Function as a Service) functions" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "mcp @ git+https://github.com/zihengli-bytedance/python-sdk.git@temp-for-volc", 9 | "volcengine-python-sdk>=3.0.8", 10 | "requests==2.32.3", 11 | "pyzipper==0.3.6" 12 | ] 13 | 14 | [project.scripts] 15 | mcp-server-vefaas-function = "mcp_server_vefaas_function.stdio:main" 16 | 17 | [build-system] 18 | requires = ["hatchling"] 19 | build-backend = "hatchling.build" 20 | 21 | [tool.hatch.metadata] 22 | allow-direct-references = true 23 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/src/mcp_server_vefaas_function/.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/src/mcp_server_vefaas_function/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vefaas_function/src/mcp_server_vefaas_function/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/src/mcp_server_vefaas_function/sse.py: -------------------------------------------------------------------------------- 1 | from vefaas_server import mcp 2 | 3 | def main(): 4 | mcp.run(transport="sse") 5 | 6 | if __name__ == "__main__": 7 | main() 8 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_function/src/mcp_server_vefaas_function/stdio.py: -------------------------------------------------------------------------------- 1 | from .vefaas_server import mcp 2 | import logging 3 | 4 | logging.basicConfig( 5 | level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" 6 | ) 7 | logger = logging.getLogger(__name__) 8 | 9 | def main(): 10 | logger.info("veFaaS MCP Server started") 11 | 12 | mcp.run(transport="stdio") 13 | 14 | if __name__ == "__main__": 15 | main() 16 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_sandbox/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vefaas-sandbox" 3 | version = "0.1.0" 4 | description = "Add your description here" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "mcp>=1.6.0", 9 | ] 10 | 11 | [project.scripts] 12 | mcp-server-vefaas-sandbox = "mcp_server_vefaas_sandbox.server:main" 13 | 14 | [build-system] 15 | requires = ["hatchling"] 16 | build-backend = "hatchling.build" 17 | -------------------------------------------------------------------------------- /server/mcp_server_vefaas_sandbox/src/mcp_server_vefaas_sandbox/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vefaas_sandbox/src/mcp_server_vefaas_sandbox/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veimagex/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | /.venv/ 3 | *.egg-info 4 | .env 5 | .ruff_cache/ 6 | /dist/ 7 | /build/ 8 | .DS_Store -------------------------------------------------------------------------------- /server/mcp_server_veimagex/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 -------------------------------------------------------------------------------- /server/mcp_server_veimagex/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-veimagex" 3 | version = "0.1.0" 4 | description = "MCP server for veImageX" 5 | readme = "README.md" 6 | requires-python = ">=3.11" 7 | dependencies = [ 8 | "mcp>=1.6.0", 9 | "python-dotenv>=1.1.0", 10 | "volcengine>=1.0.179", 11 | "starlette>=0.14.2", 12 | "typing-extensions>=4.0.0", 13 | "pydantic>=1.8.2", 14 | "retry>=0.9.2", 15 | ] 16 | 17 | [dependency-groups] 18 | dev = [ 19 | "pre-commit>=4.2.0", 20 | "ruff>=0.11.4", 21 | ] 22 | 23 | [build-system] 24 | requires = ["setuptools>=61.0"] 25 | build-backend = "setuptools.build_meta" 26 | 27 | [project.scripts] 28 | mcp-server-veimagex = "imagex.server:main" 29 | -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/__init__.py : -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veimagex/src/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/base/__init__.py : -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veimagex/src/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/base/base_service.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from .base_trait import BaseTrait # Modify it if necessary 3 | 4 | 5 | class BaseService(BaseTrait): 6 | def __init__(self, region='cn-north-1', ak=None, sk=None, service_info_map=None,): 7 | super().__init__({ 8 | 'ak': ak, 9 | 'sk': sk, 10 | 'region': region, 11 | 'service_info_map': service_info_map 12 | }) 13 | -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/imagex/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veimagex/src/imagex/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/imagex/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veimagex/src/imagex/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/imagex/server.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | from .mcp_server import create_mcp_server 4 | from dotenv import load_dotenv 5 | import asyncio 6 | import sys 7 | import argparse 8 | import logging 9 | 10 | load_dotenv() 11 | 12 | # Configure logging 13 | logging.basicConfig( 14 | level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" 15 | ) 16 | logger = logging.getLogger(__name__) 17 | 18 | def main(): 19 | parser = argparse.ArgumentParser(description="Run the veImageX MCP Server") 20 | parser.add_argument( 21 | "--transport", "-t", 22 | choices=["sse", "stdio"], 23 | default="stdio", 24 | help="Transport protocol to use (sse or stdio)" 25 | ) 26 | args = parser.parse_args() 27 | 28 | try: 29 | mcp = create_mcp_server() 30 | logger.info("Starting MCP Server veImageX with %s transport", args.transport) 31 | asyncio.run(mcp.run(transport=args.transport)) 32 | except Exception as e: 33 | logger.error(f"Error starting veImageX MCP Server: {str(e)}") 34 | sys.exit(1) 35 | 36 | 37 | if __name__ == "__main__": 38 | main() 39 | -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_veimagex/src/utils/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_veimagex/src/utils/response.py: -------------------------------------------------------------------------------- 1 | def Error(message: str): 2 | return "API Error: " + message 3 | 4 | 5 | def HandlerVolcResponse(response: dict): 6 | if ( 7 | response 8 | and hasattr(response, "ResponseMetadata") 9 | and response.ResponseMetadata 10 | and hasattr(response.ResponseMetadata, "Error") 11 | and response.ResponseMetadata.Error 12 | ): 13 | return Error(response.ResponseMetadata.Error.Message) 14 | return str(response) 15 | -------------------------------------------------------------------------------- /server/mcp_server_vikingdb/.python-version: -------------------------------------------------------------------------------- 1 | 3.13 2 | -------------------------------------------------------------------------------- /server/mcp_server_vikingdb/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vikingdb" 3 | version = "0.1.0" 4 | description = "MCP server for VikingDB Service" 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "mcp[cli]>=1.5.0", 9 | "volcengine>=1.0.171", 10 | "aiohttp>=3.11.14", 11 | "deprecated>=1.2.18", 12 | ] 13 | 14 | [project.scripts] 15 | mcp-server-vikingdb = "mcp_server_vikingdb.server:main" 16 | 17 | [build-system] 18 | requires = ["hatchling"] 19 | build-backend = "hatchling.build" 20 | 21 | -------------------------------------------------------------------------------- /server/mcp_server_vikingdb/src/mcp_server_vikingdb/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vikingdb/src/mcp_server_vikingdb/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_vikingdb/src/mcp_server_vikingdb/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vikingdb/src/mcp_server_vikingdb/common/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_vmp/.python-version: -------------------------------------------------------------------------------- 1 | 3.10 2 | -------------------------------------------------------------------------------- /server/mcp_server_vmp/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vmp" 3 | version = "0.1.0" 4 | description = "托管 Prometheus 服务(VMP)是完全继承和对接开源 Prometheus 生态的新一代云原生监控引擎系统。MCP Server VMP 支持使用自然语言,执行 Prometheus 工作区查询、指标查询等功能,适用于运维排查、数据分析等场景。" 5 | readme = "README.md" 6 | authors = [ 7 | { name = "guogangping", email = "guogangping@bytedance.com" } 8 | ] 9 | requires-python = ">=3.10" 10 | dependencies = [ 11 | "mcp[cli]", 12 | "volcengine-python-sdk>=3.0.1", 13 | ] 14 | 15 | [project.scripts] 16 | mcp-server-vmp = "mcp_server_vmp.server:main" 17 | 18 | [build-system] 19 | requires = ["hatchling"] 20 | build-backend = "hatchling.build" 21 | 22 | [tool.uv.sources] 23 | mcp = { git = "https://github.com/zihengli-bytedance/python-sdk.git", rev = "temp-for-volc" } 24 | 25 | [tool.ruff.lint] 26 | select = ["I"] 27 | -------------------------------------------------------------------------------- /server/mcp_server_vmp/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | cd `dirname $0` 4 | 5 | cd src 6 | exec python3 -m mcp_server_vmp.server -t sse -------------------------------------------------------------------------------- /server/mcp_server_vmp/src/mcp_server_vmp/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vmp/src/mcp_server_vmp/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_vmp/src/mcp_server_vmp/test.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | import mcp_server_vmp.models as models 4 | 5 | 6 | class TestModels(unittest.TestCase): 7 | def test_list_workspaces_request(self): 8 | request = models.ListWorkspacesRequest() 9 | self.assertEqual(request.PageNumber, 1) 10 | self.assertEqual(request.PageSize, 100) 11 | 12 | 13 | if __name__ == '__main__': 14 | unittest.main() 15 | -------------------------------------------------------------------------------- /server/mcp_server_vod/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | /.venv/ 3 | *.egg-info 4 | .env 5 | build/ 6 | dist/ -------------------------------------------------------------------------------- /server/mcp_server_vod/.python-version: -------------------------------------------------------------------------------- 1 | 3.13 -------------------------------------------------------------------------------- /server/mcp_server_vod/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vod" 3 | version = "0.1.1" 4 | description = "VolcEngine VOD MCP" 5 | authors = [] 6 | readme = "README.md" 7 | requires-python = ">=3.11" 8 | dependencies = [ 9 | "mcp>=1.6.0", 10 | "python-dotenv>=1.1.0", 11 | "volcengine>=1.0.177", 12 | "starlette>=0.14.2", 13 | "typing-extensions>=4.0.0", 14 | "pydantic>=1.8.2", 15 | "retry>=0.9.2" 16 | ] 17 | 18 | [dependency-groups] 19 | dev = [ 20 | "pre-commit>=4.2.0", 21 | "ruff>=0.11.4", 22 | ] 23 | 24 | [build-system] 25 | requires = ["setuptools>=61.0"] 26 | build-backend = "setuptools.build_meta" 27 | 28 | [project.scripts] 29 | mcp-server-vod = "vevod_mcp.cli:main" 30 | -------------------------------------------------------------------------------- /server/mcp_server_vod/src/vevod_mcp/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Beijing Volcano Engine Technology Ltd. 2 | # SPDX-License-Identifier: MIT 3 | from .mcp_server import create_mcp_server 4 | 5 | __all__ = ["create_mcp_server"] 6 | -------------------------------------------------------------------------------- /server/mcp_server_vod/src/vevod_mcp/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vod/src/vevod_mcp/api/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_vod/src/vevod_mcp/api/vod.py: -------------------------------------------------------------------------------- 1 | from volcengine.vod.VodService import VodService 2 | import os 3 | 4 | class VodAPI(VodService): 5 | 6 | def __init__(self): 7 | if os.getenv("VOLCENGINE_REGION") is None: 8 | region = "cn-north-1" 9 | else: 10 | region = os.getenv("VOLCENGINE_REGION") 11 | 12 | super().__init__(region=region) 13 | self.set_ak(os.getenv("VOLCENGINE_ACCESS_KEY")) 14 | self.set_sk(os.getenv("VOLCENGINE_SECRET_KEY")) 15 | self.service_info.header["x-tt-mcp"] = 'volc' -------------------------------------------------------------------------------- /server/mcp_server_vod/src/vevod_mcp/cli.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Beijing Volcano Engine Technology Ltd. 2 | # SPDX-License-Identifier: MIT 3 | import asyncio 4 | import sys 5 | from dotenv import load_dotenv 6 | 7 | from vevod_mcp import create_mcp_server 8 | 9 | def main(): 10 | """命令行入口点,用于启动 VOD MCP 服务器""" 11 | 12 | # 加载环境变量 13 | load_dotenv() 14 | 15 | try: 16 | # 创建MCP服务器 17 | mcp = create_mcp_server() 18 | 19 | asyncio.run(mcp.run()) 20 | except Exception as e: 21 | print(f"启动服务器时出错: {e}", file=sys.stderr) 22 | sys.exit(1) 23 | -------------------------------------------------------------------------------- /server/mcp_server_vortexip/.gitignore: -------------------------------------------------------------------------------- 1 | # Python 2 | .python-version 3 | 4 | # Virtual environments 5 | .venv 6 | -------------------------------------------------------------------------------- /server/mcp_server_vortexip/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "mcp-server-vortexip" 3 | version = "1.0" 4 | description = "MCP Server for VortexIP" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "mcp[cli] @ git+https://github.com/zihengli-bytedance/python-sdk.git@temp-for-volc", 9 | "pydantic==2.10.6", 10 | "volcengine-python-sdk>=3.0.4", 11 | ] 12 | 13 | [tool.hatch.metadata] 14 | allow-direct-references = true 15 | 16 | [project.scripts] 17 | mcp-server-vortexip = "mcp_server_vortexip.main:main" 18 | 19 | [build-system] 20 | requires = ["hatchling"] 21 | build-backend = "hatchling.build" 22 | -------------------------------------------------------------------------------- /server/mcp_server_vortexip/src/mcp_server_vortexip/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vortexip/src/mcp_server_vortexip/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_vortexip/src/mcp_server_vortexip/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volcengine/mcp-server/2f73b9bcf2c54b8b20f55d9a3e76e73625712906/server/mcp_server_vortexip/src/mcp_server_vortexip/base/__init__.py -------------------------------------------------------------------------------- /server/mcp_server_vortexip/src/mcp_server_vortexip/base/example.env: -------------------------------------------------------------------------------- 1 | # VolcEngine config example 2 | VOLCENGINE_ACCESS_KEY=YOUR_ACCESSKEY 3 | VOLCENGINE_SECRET_KEY=YOUR_SECRETKEY 4 | VOLCENGINE_REGION=ap-southeast-1 5 | -------------------------------------------------------------------------------- /server/mcp_server_vortexip/src/mcp_server_vortexip/main.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import logging 3 | 4 | from mcp_server_vortexip.server import mcp 5 | 6 | 7 | # Configure logging 8 | logging.basicConfig( 9 | level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" 10 | ) 11 | logger = logging.getLogger(__name__) 12 | 13 | 14 | def main(): 15 | parser = argparse.ArgumentParser(description="Run the VortexIP MCP Server") 16 | parser.add_argument( 17 | "--transport", "-t", 18 | choices=["stdio"], 19 | default="stdio", 20 | help="Transport protocol to use stdio" 21 | ) 22 | args = parser.parse_args() 23 | 24 | try: 25 | # Run the MCP server 26 | logger.info(f"Starting VortexIP MCP Server with {args.transport} transport") 27 | mcp.run(transport=args.transport) 28 | except Exception as e: 29 | logger.error(f"Error starting VortexIP MCP Server: {str(e)}") 30 | raise 31 | 32 | 33 | if __name__ == "__main__": 34 | main() 35 | -------------------------------------------------------------------------------- /server/mcp_server_vortexip/src/mcp_server_vortexip/server.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import os 3 | 4 | from typing import Any 5 | from mcp.server.fastmcp import Context, FastMCP 6 | from mcp_server_vortexip.base.vortexip import VortexIPSDK 7 | 8 | logger = logging.getLogger(__name__) 9 | 10 | # Initialize FastMCP server 11 | mcp = FastMCP("VortexIP MCP Server", port=int(os.getenv("PORT", "8000"))) 12 | 13 | vortexip_resource = VortexIPSDK() 14 | 15 | 16 | @mcp.tool() 17 | def describe_vortex_ip_attributes(vortex_id: str = None) -> dict[str, Any]: 18 | """Describe VortexIP information""" 19 | 20 | req = {"vortex_id": vortex_id} 21 | resp = vortexip_resource.describe_vortex_ip_attributes(req) 22 | logger.info(f"Success to describe vortexip attributes {vortex_id}, {resp}") 23 | return resp.to_dict() 24 | 25 | 26 | @mcp.tool() 27 | def describe_web_scraper_attributes(web_scraper_id: str = None) -> dict[str, Any]: 28 | """Describe WebScraper information""" 29 | 30 | req = {"web_scraper_id": web_scraper_id} 31 | resp = vortexip_resource.describe_web_scraper_attributes(req) 32 | logger.info(f"Success to describe webscraper attributes {web_scraper_id}, {resp}") 33 | return resp.to_dict() 34 | --------------------------------------------------------------------------------