Skip to main content
Glama

DolphinScheduler MCP Server

by ocean-zhc
project_parameter_tools.py9.92 kB
"""Tools for project parameter operations in DolphinScheduler.""" from typing import Dict, List, Optional from ..fastmcp_compat import FastMCPTool from ..client import DolphinSchedulerClient class GetProjectsProjectParameter(FastMCPTool): """Tool to 查询项目参数""" name = "get_projects_project_parameter" description = "查询项目参数" is_async = True schema = { "type": "object", "properties": { "project_code": { "type": "integer", "format": "int64", "description": "\u9879\u76eeCode" }, "code": { "type": "integer", "format": "int64", "description": "\u9879\u76ee\u53c2\u6570code" } }, "required": [ "project_code", "code" ] } async def _run(self, project_code, code) -> Dict: """Execute the GET operation on /projects/{projectCode}/project-parameter/{code}.""" client = DolphinSchedulerClient() try: response = await client.request( "GET", f"/projects/{project_code}/project-parameter/{code}" ) return {"success": True, "data": response} finally: await client.close() class UpdateProjectsProjectParameter(FastMCPTool): """Tool to 更新项目参数""" name = "update_projects_project_parameter" description = "更新项目参数" is_async = True schema = { "type": "object", "properties": { "project_code": { "type": "integer", "format": "int64", "description": "\u9879\u76eeCode" }, "code": { "type": "integer", "format": "int64", "description": "\u9879\u76ee\u53c2\u6570code" }, "project_parameter_name": { "type": "string", "description": "\u9879\u76ee\u53c2\u6570\u540d\u79f0" }, "project_parameter_value": { "type": "string", "description": "\u9879\u76ee\u53c2\u6570\u503c" } }, "required": [ "project_code", "code", "project_parameter_name", "project_parameter_value" ] } async def _run(self, project_code, code, project_parameter_name, project_parameter_value) -> Dict: """Execute the PUT operation on /projects/{projectCode}/project-parameter/{code}.""" client = DolphinSchedulerClient() try: params = { "projectParameterName": project_parameter_name, "projectParameterValue": project_parameter_value, } response = await client.request( "PUT", f"/projects/{project_code}/project-parameter/{code}", params=params ) return {"success": True, "data": response} finally: await client.close() class GetProjectsProjectParameter2(FastMCPTool): """Tool to 分页查询项目参数""" name = "get_projects_project_parameter2" description = "分页查询项目参数" is_async = True schema = { "type": "object", "properties": { "project_code": { "type": "integer", "format": "int64", "description": "\u9879\u76eeCode" }, "search_val": { "type": "string", "description": "\u641c\u7d22\u503c" }, "page_no": { "type": "integer", "format": "int32", "description": "\u9875\u7801\u53f7" }, "page_size": { "type": "integer", "format": "int32", "description": "\u9875\u5927\u5c0f" } }, "required": [ "project_code", "page_no", "page_size" ] } async def _run(self, project_code, search_val, page_no, page_size) -> Dict: """Execute the GET operation on /projects/{projectCode}/project-parameter.""" client = DolphinSchedulerClient() try: params = { "searchVal": search_val, "pageNo": page_no, "pageSize": page_size, } response = await client.request( "GET", f"/projects/{project_code}/project-parameter", params=params ) return {"success": True, "data": response} finally: await client.close() class CreateProjectsProjectParameter(FastMCPTool): """Tool to 新增项目参数""" name = "create_projects_project_parameter" description = "新增项目参数" is_async = True schema = { "type": "object", "properties": { "project_code": { "type": "integer", "format": "int64", "description": "\u9879\u76eeCode" }, "project_parameter_name": { "type": "string", "description": "\u9879\u76ee\u53c2\u6570\u540d\u79f0" }, "project_parameter_value": { "type": "string", "description": "\u9879\u76ee\u53c2\u6570\u503c" } }, "required": [ "project_code", "project_parameter_name", "project_parameter_value" ] } async def _run(self, project_code, project_parameter_name, project_parameter_value) -> Dict: """Execute the POST operation on /projects/{projectCode}/project-parameter.""" client = DolphinSchedulerClient() try: params = { "projectParameterName": project_parameter_name, "projectParameterValue": project_parameter_value, } response = await client.request( "POST", f"/projects/{project_code}/project-parameter", params=params ) return {"success": True, "data": response} finally: await client.close() class CreateProjectsProjectParameterDelete(FastMCPTool): """Tool to 删除项目参数""" name = "create_projects_project_parameter_delete" description = "删除项目参数" is_async = True schema = { "type": "object", "properties": { "project_code": { "type": "integer", "format": "int64", "description": "\u9879\u76eeCode" }, "code": { "type": "string", "description": "\u9879\u76ee\u53c2\u6570code" } }, "required": [ "project_code", "code" ] } async def _run(self, project_code, code) -> Dict: """Execute the POST operation on /projects/{projectCode}/project-parameter/delete.""" client = DolphinSchedulerClient() try: params = { "code": code, } response = await client.request( "POST", f"/projects/{project_code}/project-parameter/delete", params=params ) return {"success": True, "data": response} finally: await client.close() class CreateProjectsProjectParameterBatchDelete(FastMCPTool): """Tool to 删除项目参数""" name = "create_projects_project_parameter_batch_delete" description = "删除项目参数" is_async = True schema = { "type": "object", "properties": { "project_code": { "type": "integer", "format": "int64", "description": "\u9879\u76eeCode" }, "codes": { "type": "string", "description": "\u9879\u76ee\u53c2\u6570code" } }, "required": [ "project_code", "codes" ] } async def _run(self, project_code, codes) -> Dict: """Execute the POST operation on /projects/{projectCode}/project-parameter/batch-delete.""" client = DolphinSchedulerClient() try: params = { "codes": codes, } response = await client.request( "POST", f"/projects/{project_code}/project-parameter/batch-delete", params=params ) return {"success": True, "data": response} finally: await client.close() def register_project_parameter_tools(mcp): """Register project parameter tools with FastMCP. Args: mcp: The FastMCP instance to register tools with. """ from ..fastmcp_compat import register_tool_class register_tool_class(mcp, CreateProjectsProjectParameter) register_tool_class(mcp, CreateProjectsProjectParameterBatchDelete) register_tool_class(mcp, CreateProjectsProjectParameterDelete) register_tool_class(mcp, GetProjectsProjectParameter) register_tool_class(mcp, GetProjectsProjectParameter2) register_tool_class(mcp, UpdateProjectsProjectParameter)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ocean-zhc/dolphinscheduler-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server