{"id":28484819,"url":"https://github.com/rulego/rulego-server","last_synced_at":"2025-07-01T02:31:27.324Z","repository":{"id":285556644,"uuid":"958457773","full_name":"rulego/rulego-server","owner":"rulego","description":"A lightweight dependency-free workflow automation platform. Supports iPaaS, stream computing, MCP, and AI capabilities. ","archived":false,"fork":false,"pushed_at":"2025-06-25T10:38:54.000Z","size":1273,"stargazers_count":33,"open_issues_count":28,"forks_count":14,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-25T11:33:44.342Z","etag":null,"topics":["ai","ai-agents","apis","automation","data-flow","intergrations","ipaas","low-code-platform","mcp","mcp-client","mcp-server","rulego","workflow","workflow-engine"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rulego.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-01T08:26:17.000Z","updated_at":"2025-06-25T10:35:39.000Z","dependencies_parsed_at":"2025-04-29T05:27:04.231Z","dependency_job_id":"52a1fb2e-b9c6-4dab-b58e-4adfa83666bf","html_url":"https://github.com/rulego/rulego-server","commit_stats":null,"previous_names":["rulego/rulego-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rulego/rulego-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Frulego-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Frulego-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Frulego-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Frulego-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rulego","download_url":"https://codeload.github.com/rulego/rulego-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Frulego-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262883609,"owners_count":23379223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","apis","automation","data-flow","intergrations","ipaas","low-code-platform","mcp","mcp-client","mcp-server","rulego","workflow","workflow-engine"],"created_at":"2025-06-07T23:08:29.540Z","updated_at":"2025-07-01T02:31:27.315Z","avatar_url":"https://github.com/rulego.png","language":"JavaScript","funding_links":[],"categories":["📚 Projects (2474 total)"],"sub_categories":["MCP Servers"],"readme":"# server\r\n\r\nEnglish | [简体中文](README_ZH.md)\r\n\r\n[Official Website](https://rulego.cc) | [Docs](https://rulego.cc/en/pages/rulego-server/) | [Contribution Guide](CONTRIBUTION.md)\r\n\r\n\u003cimg src=\"docs/imgs/logo.png\" alt=\"logo\" width=\"100\"/\u003e \r\n\r\n`RuleGo-Server` is a lightweight, high-performance, modular, and integration-friendly automation workflow platform built on [RuleGo](https://github.com/rulego/rulego).\r\n\r\nIt can be used for automation orchestration, iPaaS (Integration Platform as a Service), API orchestration, application orchestration, AI orchestration, data processing, IoT rule engine, AI assistant, and other scenarios.\r\n\r\n\r\n## Features\r\n- **Lightweight:** Low memory usage, high performance, simple deployment, ready-to-use, no database required.\r\n- **Rich Components:** Over 100 built-in components. Additionally, a component marketplace and rule chain marketplace are provided, supporting dynamic installation.\r\n- **Visualization:** Supports visualization of rule chains.\r\n- **Modular:** Compile and load on demand.\r\n- **Hot Updates:** Workflow supports hot updates.\r\n- **AI Support:** Supports large model components. The system automatically registers all components and rule chains as MCP tools for use by AI assistants.\r\n- **Bridge the Last Mile:** Third-party system services can be easily encapsulated into MCP tools with the help of RuleGo-Server.\r\n\r\n## Experience Links\r\n- Experience Link 1: [http://8.134.32.225:9090/rulego-ipaas-ui/](http://8.134.32.225:9090/rulego-ipaas-ui/)\r\n- Experience Link 2: [http://8.134.32.225:9090/ui/](http://8.134.32.225:9090/ui/)\r\n- Experience Link 3: [http://8.134.32.225:9090/editor/](http://8.134.32.225:9090/editor/)\r\n\r\n## HTTP API\r\n\r\n[API Documentation](https://apifox.com/apidoc/shared-d17a63fe-2201-4e37-89fb-f2e8c1cbaf40/234016936e0)\r\n\r\n## Multi-Tenancy\r\nThis project supports multi-tenancy/users, with isolated rule chain data for each user. User data is stored in the `data/workflows/{username}` directory.\r\n\r\nUser permission verification is disabled by default, and all operations are performed as the default user. To enable permission verification:\r\n\r\n- Obtain a token through username and password, then access other interfaces using the token. Example:\r\n```ini\r\n# Whether to enable JWT authentication for APIs. If disabled, operations will be performed as the default user (admin)\r\nrequire_auth = true\r\n# JWT secret key\r\njwt_secret_key = r6G7qZ8xk9P0y1Q2w3E4r5T6y7U8i9O0pL7z8x9CvBnM3k2l1\r\n# JWT expiration time\r\njwt_expire_time = 43200000\r\n# JWT issuer\r\njwt_issuer = rulego.cc\r\n# User list\r\n# Configure usernames and passwords in the format username=password[,apiKey]. The apiKey is optional.\r\n# If apiKey is configured, the caller can access other interfaces directly using the apiKey without logging in.\r\n[users]\r\nadmin = admin\r\nuser01 = user01\r\n```\r\nThe frontend obtains a token through the login interface (`/api/v1/login`), then accesses other interfaces using the token. Example:\r\n```shell\r\ncurl -H \"Authorization: Bearer token\" http://localhost:8080/api/resource\r\n```\r\n- Access other interfaces using the `api_key` method. Example:\r\n```ini\r\n# Whether to enable JWT authentication for APIs. If disabled, operations will be performed as the default user (admin)\r\nrequire_auth = true\r\n# User list\r\n# Configure usernames and passwords in the format username=password[,apiKey]. The apiKey is optional.\r\n# If apiKey is configured, the caller can access other interfaces directly using the apiKey without logging in.\r\n[users]\r\nadmin = admin,2af255ea-5618-467d-914c-67a8beeca31d\r\nuser01 = user01\r\n```\r\n\r\nThen access other interfaces using the token. Example:\r\n```shell\r\ncurl -H \"Authorization: Bearer apiKey\" http://localhost:8080/api/resource\r\n```\r\n\r\n## Server Compilation\r\n\r\nTo save the size of the compiled file, the extension component [rulego-components](https://github.com/rulego/rulego-components) is not included by default. Default compilation:\r\n\r\n```shell\r\ncd cmd/server\r\ngo build .\r\n```\r\n\r\nIf you need to include the extension component [rulego-components](https://github.com/rulego/rulego-components), compile with the `with_extend` tag:\r\n\r\n```shell\r\ncd cmd/server\r\ngo build -tags with_extend .\r\n```\r\nOther extension component library tags:\r\n- Register the extension component [rulego-components](https://github.com/rulego/rulego-components) using the `with_extend` tag for compilation:\r\n- Register the AI extension component [rulego-components-ai](https://github.com/rulego/rulego-components-ai) using the `with_ai` tag for compilation\r\n- Register the CI/CD extension component [rulego-components-ci](https://github.com/rulego/rulego-components-ci) using the `with_ci` tag for compilation\r\n- Register the IoT extension component [rulego-components-iot](https://github.com/rulego/rulego-components-iot) using the `with_iot` tag for compilation\r\n- Register the ETL extension component [rulego-components-etl](https://github.com/rulego/rulego-components-etl) using the `with_etl` tag for compilation\r\n- Replace the standard `endpoint/http` and `restApiCall` components with `fasthttp`, and compile with the `use_fasthttp` tag.\r\n\r\nIf you need to include multiple extension component libraries at the same time, you can compile with the `go build -tags \"with_extend,with_ai,with_ci,with_iot,with_etl\"` tag.\r\n\r\n## Server Startup\r\n\r\n```shell\r\n./server -c=\"./config.conf\"\r\n```\r\n\r\nOr start in the background:\r\n\r\n```shell\r\nnohup ./server -c=\"./config.conf\" \u003e\u003e console.log \u0026\r\n```\r\n\r\n## UI\r\nDetails: [UI](ui/README.md)\r\nRename the compiled `ui` directory to `editor` and place it in the root directory, then run `server`.\r\n\r\n## RuleGo-Server-MCP\r\nRuleGo-Server supports MCP (Model Context Protocol).\r\nWhen enabled, the system automatically registers all registered components, rule chains, and APIs as MCP tools.\r\nThis allows AI assistants (such as Windsurf, Cursor, Codeium, etc.) to directly call these tools through the MCP protocol, achieving deep integration with application systems.\r\nDocumentation: [rulego-server-mcp](https://rulego.cc/en/pages/rulego-server-mcp/)\r\n\r\n## Configuration File Parameters\r\n`config.conf`\r\n```ini\r\n# Data directory\r\ndata_dir = ./data\r\n# Whitelist for cmd component commands\r\ncmd_white_list = cp,scp,mvn,npm,yarn,git,make,cmake,docker,kubectl,helm,ansible,puppet,pytest,python,python3,pip,go,java,dotnet,gcc,g++,ctest\r\n# Whether to load third-party Lua libraries\r\nload_lua_libs = true\r\n# HTTP server\r\nserver = :9090\r\n# Default user\r\ndefault_username = admin\r\n# Whether to log node execution logs to the log file\r\ndebug = true\r\n# Maximum node log size, default 40\r\nmax_node_log_size =40\r\n# Resource mapping, supports wildcards, multiple mappings separated by commas, format: /url/*filepath=/path/to/file\r\nresource_mapping = /editor/*filepath=./editor,/images/*filepath=./editor/images\r\n# Node pool file, in rule chain JSON format, example: ./node_pool.json\r\nnode_pool_file=./node_pool.json\r\n# Save run log to file\r\nsave_run_log = false\r\n# Maximum script execution time\r\nscript_max_execution_time = 5000\r\n# Whether to enable JWT authentication for APIs\r\nrequire_auth = false\r\n# JWT secret key\r\njwt_secret_key = r6G7qZ8xk9P0y1Q2w3E4r5T6y7U8i9O0pL7z8x9CvBnM3k2l1\r\n# JWT expiration time, in milliseconds\r\njwt_expire_time = 43200000\r\n# JWT issuer\r\njwt_issuer = rulego.cc\r\n# MCP server configuration\r\n[mcp]\r\n# Whether to enable the MCP service\r\nenable = true\r\n# Whether to use components as MCP tools\r\nload_components_as_tool = true\r\n# Whether to use rule chains as MCP tools\r\nload_chains_as_tool = true\r\n# Whether to add a rule chain API tool\r\nload_apis_as_tool = true\r\n# Exclude component list\r\nexclude_components = comment,iterator,delay,groupAction,ref,fork,join,*Filter\r\n# Exclude rule chain list\r\nexclude_chains =\r\n\r\n# pprof configuration\r\n[pprof]\r\n# Whether to enable pprof\r\nenable = false\r\n# pprof address\r\naddr = 0.0.0.0:6060\r\n\r\n# Global custom configuration, components can access values using ${global.xxx}\r\n[global]\r\n# Example\r\nsqlDriver = mysql\r\nsqlDsn = root:root@tcp(127.0.0.1:3306)/test\r\n\r\n# User list\r\n# Configure usernames and passwords in the format username=password[,apiKey]. The apiKey is optional.\r\n# If apiKey is configured, the caller can access other interfaces directly using the apiKey without logging in.\r\n[users]\r\nadmin = admin,2af255ea5618467d914c67a8beeca31d\r\nuser01 = user01,2af255ea5618467d914c67a8beeca51c\r\n```\r\n\r\n## Contact Us\r\nEmail: rulego@outlook.com","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frulego%2Frulego-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frulego%2Frulego-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frulego%2Frulego-server/lists"}