- 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>
## Why
With the following configuration:
```bash
docker run -i --rm -e GITEA_HOST=<gitea_host> -e GITEA_ACCESS_TOKEN=<gitea_access_token_for_host> docker.gitea.com/gitea-mcp-server:latest
```
after mcp-client calling a tool, the gitea client will encounter the following fatal error:
```
FATAL gitea/gitea.go:47 create gitea client err: user does not exist [uid: 0, name: ]
gitea.com/gitea/gitea-mcp/pkg/gitea.Client.func1
/app/pkg/gitea/gitea.go:47
sync.(*Once).doSlow
/usr/local/go/src/sync/once.go:78
sync.(*Once).Do
/usr/local/go/src/sync/once.go:69
gitea.com/gitea/gitea-mcp/pkg/gitea.Client
/app/pkg/gitea/gitea.go:21
gitea.com/gitea/gitea-mcp/operation/search.SearchReposFn
/app/operation/search/search.go:161
github.com/mark3labs/mcp-go/server.(*MCPServer).handleToolCall
/go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/server.go:717
github.com/mark3labs/mcp-go/server.(*MCPServer).HandleMessage
/go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/request_handler.go:264
github.com/mark3labs/mcp-go/server.(*StdioServer).processMessage
/go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:228
github.com/mark3labs/mcp-go/server.(*StdioServer).processInputStream
/go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:143
github.com/mark3labs/mcp-go/server.(*StdioServer).Listen
/go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:209
github.com/mark3labs/mcp-go/server.ServeStdio
/go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:282
gitea.com/gitea/gitea-mcp/operation.Run
/app/operation/operation.go:48
gitea.com/gitea/gitea-mcp/cmd.Execute
/app/cmd/cmd.go:119
main.main
/app/main.go:12
runtime.main
/usr/local/go/src/runtime/proc.go:283
```
Turns out the root cause was because the `GITEA_HOST` environment variable wasn't overriding the default flag value, resulting in mismatch of host and access token.
The if statement won't be entered
7cfa1fa218/cmd/cmd.go (L74-L77)
Due to `host` could never be evaluated as an empty string from the default value `"http://gitea.com"`
7cfa1fa218/cmd/cmd.go (L35-L40)
Unless user specify `gitea-mcp ... --host <empty_string> ...` with environment `GITEA_HOST=<non_empty_string>` at the same time, which is very unlikely IMHO.
## How
- Set `host` flag default value from `GITEA_HOST` environment variable value
- Remove possible dead code if-statement
Co-authored-by: hiifong <i@hiif.ong>
Reviewed-on: https://gitea.com/gitea/gitea-mcp/pulls/23
Reviewed-by: hiifong <i@hiif.ong>
Co-authored-by: Flynn Hou <flynnhou7@gmail.com>
Co-committed-by: Flynn Hou <flynnhou7@gmail.com>
- Add `GITEA_INTERACTIVE` configuration example in README files
- Add `insecure` flag to ignore TLS certificate errors in `cmd.go`
- Set insecure mode based on `GITEA_INSECURE` environment variable in `cmd.go`
- Add `Insecure` boolean variable in `pkg/flag/flag.go`
- Import `crypto/tls` and `net/http` in `pkg/gitea/gitea.go`
- Modify Gitea client creation to support insecure HTTP client in `pkg/gitea/gitea.go`
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
Reviewed-on: https://gitea.com/gitea/gitea-mcp/pulls/20
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com>
- Import the `context` package
- Add context cancellation handling with log message and return in `Execute` function
Signed-off-by: appleboy <appleboy.tw@gmail.com>
- Add command to install `air` for hot reloading in `Makefile`
- Add `dev` command to run the application with hot reload in `Makefile`
- Add `vendor` command to tidy and verify module dependencies in `Makefile`
- Update log synchronization method to use `log.Default().Sync()` in `cmd/cmd.go`
- Change variadic parameter type from `interface{}` to `any` in logging functions
- Remove `Sync` function from `pkg/log/log.go`
ref: https://github.com/uber-go/zap/issues/880
Signed-off-by: appleboy <appleboy.tw@gmail.com>