MCP Server
This NodeJS MCP server requires NodeJS 22.x or higher
Setup
$ npm install
Usage
To fire up the server
$ npx -y tsx server.ts
To debug or test, you can use the UI inspector:
$ npx @modelcontextprotocol/inspector
Tools
echo
Echoes any message passed to it.
login
Logs into a forgejo server and saves the token. You may use the server at https://forgejo.freshbrewed.science with the user testmcp.
get_user
Gets a user from a forgejo server. You must login first.
search_issues
Searches for issues in a repository. You must login first.
| owner | string | The owner of the repository |
| repo | string | The name of the repository |
| state | string | The state of the issues to search for (e.g., 'open', 'closed') |
| labels | string | A comma-separated list of labels to search for |
| milestones | string | A comma-separated list of milestones to search for |
| q | string | A search query |
| priority_repo_id | string | The ID of the repository to prioritize search results from |
| type | string | The type of issue to search for (e.g., 'issues', 'pulls') |
| since | string | A timestamp to search for issues created after |
| before | string | A timestamp to search for issues created before |
| assignees | string | A comma-separated list of assignees to search for |
| assigned | boolean | Whether to search for assigned issues |
| creator | string | The username of the creator to search for |
| mentioned | string | The username of a user mentioned in the issue |
| review_assignees | string | A comma-separated list of review assignees to search for |
| reviewed | string | The username of a user who has reviewed the issue |
| team | string | The name of the team to search for |
| page | number | The page number of the search results |
| limit | number | The number of search results to return per page |
list_issues
Lists issues for a repository. You must login first.
| owner | string | The owner of the repository |
| repo | string | The name of the repository |
| state | string | The state of the issues to list (e.g., 'open', 'closed') |
| labels | string | A comma-separated list of labels to filter by |
| milestones | string | A comma-separated list of milestones to filter by |
| q | string | A search query to filter by |
| priority_repo_id | string | The ID of the repository to prioritize results from |
| type | string | The type of issue to list (e.g., 'issues', 'pulls') |
| since | string | A timestamp to list issues created after |
| before | string | A timestamp to list issues created before |
| assignees | string | A comma-separated list of assignees to filter by |
| assigned | boolean | Whether to list assigned issues |
| creator | string | The username of the creator to filter by |
| mentioned | string | The username of a user mentioned in the issue |
| review_assignees | string | A comma-separated list of review assignees to filter by |
| reviewed | string | The username of a user who has reviewed the issue |
| team | string | The name of the team to filter by |
| page | number | The page number of the results |
| limit | number | The number of results to return per page |
create_issue
Creates an issue in a repository. You must login first.
| owner | string | The owner of the repository |
| repo | string | The name of the repository |
| title | string | The title of the issue |
| assignee | string | The username of the assignee |
| assignees | array | An array of usernames to assign to the issue |
| body | string | The body of the issue |
| closed | boolean | Whether the issue is closed |
| due_date | string | The due date of the issue |
| labels | array | An array of label IDs to assign to the issue |
| milestone | number | The ID of the milestone to assign to the issue |
| ref | string | The ref to create the issue from |