mirror of
				https://gitea.com/gitea/gitea-mcp.git
				synced 2025-11-03 20:01:50 +00:00 
			
		
		
		
	feat: add HTTP server mode with updated docs and localization (#45)
- Update download instructions for clarity and consistency in all README files - Add example configuration for HTTP mode to all README files - Expand transport type support to include "http" in command-line flags and documentation - Implement HTTP server mode in the application entrypoint - Update log output behavior to include "http" mode alongside "sse" for stdout logging - Refine Chinese README translations for greater accuracy and localization Signed-off-by: appleboy <appleboy.tw@gmail.com> Reviewed-on: https://gitea.com/gitea/gitea-mcp/pulls/45 Co-authored-by: appleboy <appleboy.tw@gmail.com> Co-committed-by: appleboy <appleboy.tw@gmail.com>
This commit is contained in:
		
							
								
								
									
										86
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										86
									
								
								README.md
									
									
									
									
									
								
							@@ -59,7 +59,7 @@ Optionally, you can add it to a file called `.vscode/mcp.json` in your workspace
 | 
			
		||||
 | 
			
		||||
### 📥 Download the official binary release
 | 
			
		||||
 | 
			
		||||
You can download the official release from [here](https://gitea.com/gitea/gitea-mcp/releases).
 | 
			
		||||
You can download the official release from [official Gitea MCP binary releases](https://gitea.com/gitea/gitea-mcp/releases).
 | 
			
		||||
 | 
			
		||||
### 🔧 Build from Source
 | 
			
		||||
 | 
			
		||||
@@ -129,6 +129,18 @@ To configure the MCP server for Gitea, add the following to your MCP configurati
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- **http mode**
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
{
 | 
			
		||||
  "mcpServers": {
 | 
			
		||||
    "gitea": {
 | 
			
		||||
      "url": "http://localhost:8080/mcp"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Default log path**: `$HOME/.gitea-mcp/gitea-mcp.log`
 | 
			
		||||
 | 
			
		||||
> [!NOTE]
 | 
			
		||||
@@ -145,42 +157,42 @@ list all my repositories
 | 
			
		||||
 | 
			
		||||
The Gitea MCP Server supports the following tools:
 | 
			
		||||
 | 
			
		||||
|             Tool             |    Scope     |                      Description                      |
 | 
			
		||||
| :--------------------------: | :----------: | :---------------------------------------------------: |
 | 
			
		||||
|       get_my_user_info       |     User     |     Get the information of the authenticated user     |
 | 
			
		||||
|       get_user_orgs       |     User     |     Get organizations associated with the authenticated user     |
 | 
			
		||||
|         create_repo          |  Repository  |                Create a new repository                |
 | 
			
		||||
|          fork_repo           |  Repository  |                   Fork a repository                   |
 | 
			
		||||
|        list_my_repos         |  Repository  | List all repositories owned by the authenticated user |
 | 
			
		||||
|        create_branch         |    Branch    |                  Create a new branch                  |
 | 
			
		||||
|        delete_branch         |    Branch    |                    Delete a branch                    |
 | 
			
		||||
|        list_branches         |    Branch    |           List all branches in a repository           |
 | 
			
		||||
|        create_release        |    Release   |           Create a new release in a repository        |
 | 
			
		||||
|        delete_release        |    Release   |           Delete a release from a repository          |
 | 
			
		||||
|        get_release           |    Release   |                     Get a release                     |
 | 
			
		||||
|      get_latest_release      |    Release   |         Get the latest release in a repository        |
 | 
			
		||||
|        list_releases         |    Release   |           List all releases in a repository           |
 | 
			
		||||
|          create_tag          |     Tag      |                   Create a new tag                    |
 | 
			
		||||
|          delete_tag          |     Tag      |                     Delete a tag                      |
 | 
			
		||||
|           get_tag            |     Tag      |                      Get a tag                        |
 | 
			
		||||
|          list_tags           |     Tag      |               List all tags in a repository           |
 | 
			
		||||
|      list_repo_commits       |    Commit    |           List all commits in a repository            |
 | 
			
		||||
|       get_file_content       |     File     |        Get the content and metadata of a file         |
 | 
			
		||||
|         create_file          |     File     |                   Create a new file                   |
 | 
			
		||||
|         update_file          |     File     |                Update an existing file                |
 | 
			
		||||
|         delete_file          |     File     |                     Delete a file                     |
 | 
			
		||||
|      get_issue_by_index      |    Issue     |               Get an issue by its index               |
 | 
			
		||||
|       list_repo_issues       |    Issue     |            List all issues in a repository            |
 | 
			
		||||
|         create_issue         |    Issue     |                  Create a new issue                   |
 | 
			
		||||
|     create_issue_comment     |    Issue     |             Create a comment on an issue              |
 | 
			
		||||
|          edit_issue          |    Issue     |                      Edit a issue                     |
 | 
			
		||||
|  get_pull_request_by_index   | Pull Request |            Get a pull request by its index            |
 | 
			
		||||
|   list_repo_pull_requests    | Pull Request |        List all pull requests in a repository         |
 | 
			
		||||
|     create_pull_request      | Pull Request |               Create a new pull request               |
 | 
			
		||||
|         search_users         |     User     |                   Search for users                    |
 | 
			
		||||
|       search_org_teams       | Organization |          Search for teams in an organization          |
 | 
			
		||||
|         search_repos         |  Repository  |                Search for repositories                |
 | 
			
		||||
| get_gitea_mcp_server_version |    Server    |        Get the version of the Gitea MCP Server        |
 | 
			
		||||
|             Tool             |    Scope     |                       Description                        |
 | 
			
		||||
| :--------------------------: | :----------: | :------------------------------------------------------: |
 | 
			
		||||
|       get_my_user_info       |     User     |      Get the information of the authenticated user       |
 | 
			
		||||
|        get_user_orgs         |     User     | Get organizations associated with the authenticated user |
 | 
			
		||||
|         create_repo          |  Repository  |                 Create a new repository                  |
 | 
			
		||||
|          fork_repo           |  Repository  |                    Fork a repository                     |
 | 
			
		||||
|        list_my_repos         |  Repository  |  List all repositories owned by the authenticated user   |
 | 
			
		||||
|        create_branch         |    Branch    |                   Create a new branch                    |
 | 
			
		||||
|        delete_branch         |    Branch    |                     Delete a branch                      |
 | 
			
		||||
|        list_branches         |    Branch    |            List all branches in a repository             |
 | 
			
		||||
|        create_release        |   Release    |           Create a new release in a repository           |
 | 
			
		||||
|        delete_release        |   Release    |            Delete a release from a repository            |
 | 
			
		||||
|         get_release          |   Release    |                      Get a release                       |
 | 
			
		||||
|      get_latest_release      |   Release    |          Get the latest release in a repository          |
 | 
			
		||||
|        list_releases         |   Release    |            List all releases in a repository             |
 | 
			
		||||
|          create_tag          |     Tag      |                     Create a new tag                     |
 | 
			
		||||
|          delete_tag          |     Tag      |                       Delete a tag                       |
 | 
			
		||||
|           get_tag            |     Tag      |                        Get a tag                         |
 | 
			
		||||
|          list_tags           |     Tag      |              List all tags in a repository               |
 | 
			
		||||
|      list_repo_commits       |    Commit    |             List all commits in a repository             |
 | 
			
		||||
|       get_file_content       |     File     |          Get the content and metadata of a file          |
 | 
			
		||||
|         create_file          |     File     |                    Create a new file                     |
 | 
			
		||||
|         update_file          |     File     |                 Update an existing file                  |
 | 
			
		||||
|         delete_file          |     File     |                      Delete a file                       |
 | 
			
		||||
|      get_issue_by_index      |    Issue     |                Get an issue by its index                 |
 | 
			
		||||
|       list_repo_issues       |    Issue     |             List all issues in a repository              |
 | 
			
		||||
|         create_issue         |    Issue     |                    Create a new issue                    |
 | 
			
		||||
|     create_issue_comment     |    Issue     |               Create a comment on an issue               |
 | 
			
		||||
|          edit_issue          |    Issue     |                       Edit a issue                       |
 | 
			
		||||
|  get_pull_request_by_index   | Pull Request |             Get a pull request by its index              |
 | 
			
		||||
|   list_repo_pull_requests    | Pull Request |          List all pull requests in a repository          |
 | 
			
		||||
|     create_pull_request      | Pull Request |                Create a new pull request                 |
 | 
			
		||||
|         search_users         |     User     |                     Search for users                     |
 | 
			
		||||
|       search_org_teams       | Organization |           Search for teams in an organization            |
 | 
			
		||||
|         search_repos         |  Repository  |                 Search for repositories                  |
 | 
			
		||||
| get_gitea_mcp_server_version |    Server    |         Get the version of the Gitea MCP Server          |
 | 
			
		||||
 | 
			
		||||
## 🐛 Debugging
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -57,9 +57,9 @@ Model Context Protocol (MCP) 是一种协议,允许通过聊天界面整合各
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 📥 下载官方二进制版本
 | 
			
		||||
### 📥 下载官方 Gitea MCP 二进制版本
 | 
			
		||||
 | 
			
		||||
您可以从[这里](https://gitea.com/gitea/gitea-mcp/releases)下载官方版本。
 | 
			
		||||
您可以从[官方 Gitea MCP 二进制版本](https://gitea.com/gitea/gitea-mcp/releases)下载官方版本。
 | 
			
		||||
 | 
			
		||||
### 🔧 从源代码构建
 | 
			
		||||
 | 
			
		||||
@@ -129,6 +129,18 @@ cp gitea-mcp /usr/local/bin/
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- **http 模式**
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
{
 | 
			
		||||
  "mcpServers": {
 | 
			
		||||
    "gitea": {
 | 
			
		||||
      "url": "http://localhost:8080/mcp"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**默认日志路径**: `$HOME/.gitea-mcp/gitea-mcp.log`
 | 
			
		||||
 | 
			
		||||
> [!注意]
 | 
			
		||||
@@ -180,7 +192,7 @@ Gitea MCP 服务器支持以下工具:
 | 
			
		||||
|         search_users         |   用户   |           搜索用户           |
 | 
			
		||||
|       search_org_teams       |   组织   |       搜索组织中的团队       |
 | 
			
		||||
|         search_repos         |   仓库   |           搜索仓库           |
 | 
			
		||||
| get_gitea_mcp_server_version |  服务器  | 获取 Gitea MCP 服务器的版本  |
 | 
			
		||||
| get_gitea_mcp_server_version |   服务器    |        获取 Gitea MCP 服务器的版本         |
 | 
			
		||||
 | 
			
		||||
## 🐛 调试
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -57,9 +57,9 @@ Model Context Protocol (MCP) 是一種協議,允許通過聊天界面整合各
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 📥 下載官方二進制版本
 | 
			
		||||
### 📥 下載官方 Gitea MCP 二進位版本
 | 
			
		||||
 | 
			
		||||
您可以從[這裡](https://gitea.com/gitea/gitea-mcp/releases)下載官方版本。
 | 
			
		||||
您可以從[官方 Gitea MCP 二進位版本](https://gitea.com/gitea/gitea-mcp/releases)下載官方版本。
 | 
			
		||||
 | 
			
		||||
### 🔧 從源代碼構建
 | 
			
		||||
 | 
			
		||||
@@ -129,11 +129,23 @@ cp gitea-mcp /usr/local/bin/
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**默認日誌路徑**: `$HOME/.gitea-mcp/gitea-mcp.log`
 | 
			
		||||
- **http 模式**
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
{
 | 
			
		||||
  "mcpServers": {
 | 
			
		||||
    "gitea": {
 | 
			
		||||
      "url": "http://localhost:8080/mcp"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**預設日誌路徑**: `$HOME/.gitea-mcp/gitea-mcp.log`
 | 
			
		||||
 | 
			
		||||
> [!注意]
 | 
			
		||||
> 您可以通過命令行參數或環境變量提供您的 Gitea 主機和訪問令牌。
 | 
			
		||||
> 命令行參數具有最高優先級
 | 
			
		||||
> 您可以通過命令列參數或環境變數提供您的 Gitea 主機和訪問令牌。
 | 
			
		||||
> 命令列參數具有最高優先權
 | 
			
		||||
 | 
			
		||||
一切設置完成後,請嘗試在您的 MCP 兼容聊天框中輸入以下內容:
 | 
			
		||||
 | 
			
		||||
@@ -180,11 +192,11 @@ Gitea MCP 伺服器支持以下工具:
 | 
			
		||||
|         search_users         |   用戶   |           搜索用戶           |
 | 
			
		||||
|       search_org_teams       |   組織   |       搜索組織中的團隊       |
 | 
			
		||||
|         search_repos         |   倉庫   |           搜索倉庫           |
 | 
			
		||||
| get_gitea_mcp_server_version |  伺服器  | 獲取 Gitea MCP 伺服器的版本  |
 | 
			
		||||
| get_gitea_mcp_server_version |   伺服器    |        獲取 Gitea MCP 伺服器的版本         |
 | 
			
		||||
 | 
			
		||||
## 🐛 調試
 | 
			
		||||
 | 
			
		||||
要啟用調試模式,請在使用 sse 模式運行 Gitea MCP 伺服器時添加 `-d` 標誌:
 | 
			
		||||
要啟用調試模式,請在使用 sse 模式運行 Gitea MCP 伺服器時添加 `-d` 旗標:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
./gitea-mcp -t sse [--port 8080] --token <your personal access token> -d
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ func init() {
 | 
			
		||||
		&flagPkg.Mode,
 | 
			
		||||
		"t",
 | 
			
		||||
		"stdio",
 | 
			
		||||
		"Transport type (stdio or sse)",
 | 
			
		||||
		"Transport type (stdio, sse or http)",
 | 
			
		||||
	)
 | 
			
		||||
	flag.StringVar(
 | 
			
		||||
		&flagPkg.Mode,
 | 
			
		||||
		"transport",
 | 
			
		||||
		"stdio",
 | 
			
		||||
		"Transport type (stdio or sse)",
 | 
			
		||||
		"Transport type (stdio, sse or http)",
 | 
			
		||||
	)
 | 
			
		||||
	flag.StringVar(
 | 
			
		||||
		&host,
 | 
			
		||||
@@ -39,7 +39,7 @@ func init() {
 | 
			
		||||
		&port,
 | 
			
		||||
		"port",
 | 
			
		||||
		8080,
 | 
			
		||||
		"sse port",
 | 
			
		||||
		"see or http port",
 | 
			
		||||
	)
 | 
			
		||||
	flag.StringVar(
 | 
			
		||||
		&token,
 | 
			
		||||
 
 | 
			
		||||
@@ -15,9 +15,7 @@ import (
 | 
			
		||||
	"github.com/mark3labs/mcp-go/server"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	mcpServer *server.MCPServer
 | 
			
		||||
)
 | 
			
		||||
var mcpServer *server.MCPServer
 | 
			
		||||
 | 
			
		||||
func RegisterTool(s *server.MCPServer) {
 | 
			
		||||
	// User Tool
 | 
			
		||||
@@ -55,8 +53,14 @@ func Run() error {
 | 
			
		||||
		if err := sseServer.Start(fmt.Sprintf(":%d", flag.Port)); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	case "http":
 | 
			
		||||
		httpServer := server.NewStreamableHTTPServer(mcpServer)
 | 
			
		||||
		log.Infof("Gitea MCP HTTP server listening on :%d", flag.Port)
 | 
			
		||||
		if err := httpServer.Start(fmt.Sprintf(":%d", flag.Port)); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("invalid transport type: %s. Must be 'stdio' or 'sse'", flag.Mode)
 | 
			
		||||
		return fmt.Errorf("invalid transport type: %s. Must be 'stdio', 'sse' or 'http'", flag.Mode)
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ func Default() *zap.Logger {
 | 
			
		||||
				MaxAge:     30,
 | 
			
		||||
			}))
 | 
			
		||||
 | 
			
		||||
			if flag.Mode == "sse" {
 | 
			
		||||
			if flag.Mode == "http" || flag.Mode == "sse" {
 | 
			
		||||
				wss = append(wss, zapcore.AddSync(os.Stdout))
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user