-
Notifications
You must be signed in to change notification settings - Fork 1
Add comprehensive input/output schema for stdio and http MCP transports #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
01c7e51
86682e4
39da5b1
eeb2174
4aeb17a
6295988
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,107 @@ | ||
| # GitHub Agentic Workflows MCP Proxy Action | ||
|
|
||
| This GitHub Custom Action is responsible for mounting an MCP behing a HTTP | ||
| This GitHub Custom Action is responsible for mounting an MCP behind a HTTP | ||
| transport to isolate the MCP from the main container. | ||
|
|
||
| ## Inputs | ||
|
|
||
| ### Required Inputs | ||
|
|
||
| - **`type`** (required): Upstream connection type. Must be either `stdio` or | ||
| `http`. | ||
|
|
||
| ### Optional Inputs | ||
|
|
||
| #### For `stdio` type: | ||
|
|
||
| - **`command`**: Command to execute (required when `type` is `stdio`) | ||
| - **`args`**: JSON array of command arguments (e.g., `'["arg1", "arg2"]'`) | ||
| - **`env`**: JSON object of environment variables (e.g., | ||
| `'{"NODE_ENV": "production"}'`) | ||
|
|
||
| #### For `http` type: | ||
|
|
||
| - **`url`**: URL for HTTP connection (required when `type` is `http`) | ||
| - **`headers`**: JSON object of HTTP headers (e.g., | ||
| `'{"Authorization": "Bearer token"}'`) | ||
|
|
||
| #### General: | ||
|
|
||
| - **`container-image`**: Container image to run | ||
| - **`container`**: (Deprecated) Legacy container name, use `container-image` | ||
| instead | ||
| - **`logs-dir`**: Directory for log files (default: `./logs`) | ||
|
|
||
| ## Outputs | ||
|
|
||
| - **`url`**: The URL of the proxy server | ||
| - **`port`**: The port number the proxy is running on | ||
| - **`token`**: The API token for accessing the proxy | ||
|
|
||
| ## Example Usage | ||
|
|
||
| ### Example 1: HTTP Upstream | ||
|
|
||
| ```yaml | ||
| - name: Start MCP Proxy | ||
| uses: githubnext/gh-aw-mcp-container-action@v1 | ||
| with: | ||
| type: http | ||
| url: http://localhost:3000/mcp | ||
| headers: '{"Authorization": "Bearer my-token"}' | ||
| ``` | ||
| ### Example 2: stdio Upstream | ||
| ```yaml | ||
| - name: Start MCP Proxy | ||
| uses: githubnext/gh-aw-mcp-container-action@v1 | ||
| with: | ||
| type: stdio | ||
| command: node | ||
| args: '["mcp-server.js"]' | ||
| env: '{"NODE_ENV": "production", "DEBUG": "true"}' | ||
| ``` | ||
| ### Example 3: With Container Image | ||
| ```yaml | ||
| - name: Start MCP Proxy | ||
| uses: githubnext/gh-aw-mcp-container-action@v1 | ||
| with: | ||
| type: http | ||
| url: http://localhost:3000/mcp | ||
| container-image: my-mcp-server:latest | ||
| ``` | ||
| ## Development | ||
|
||
| ### Install Dependencies | ||
| ```bash | ||
| npm install | ||
| ``` | ||
|
|
||
| ### Run Tests | ||
|
|
||
| ```bash | ||
| npm test | ||
| ``` | ||
|
|
||
| ### Build | ||
|
|
||
| ```bash | ||
| npm run package | ||
| ``` | ||
|
|
||
| ### Lint | ||
|
|
||
| ```bash | ||
| npm run lint | ||
| ``` | ||
|
|
||
| ### Format | ||
|
|
||
| ```bash | ||
| npm run format:write | ||
| ``` | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot this one should have been "container-version", and keep "container"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added
container-versioninput in action.yml and removed the deprecated status fromcontainer. Both fields are now documented in the README. (commit 6295988)