go-mcp-universal
go-mcp-universal is a universal MCP server for Go applications, supporting Cursor.ai and AI tools. It provides features such as accessing goroutine information, retrieving environment variables, running tests, and diagnosing with pprof. This allows developers to enhance application performance and integrate AI functionalities.
GitHub Stars
0
User Rating
Not Rated
Favorites
0
Views
25
Forks
0
Issues
0
go-mcp-universal
Универсальный MCP сервер для Go-приложений с поддержкой Cursor.ai и AI-инструментов.
Возможности
- Доступ к информации о горутинах и их стеках
- Получение переменных окружения
- Запуск тестов
- Диагностика pprof (heap, goroutine)
- AI-инструмент (заглушка, можно расширить)
Установка
go get github.com/anddm2001/go-mcp-universal
Использование в своём приложении
import (
"github.com/mark3labs/mcp-go/server"
"github.com/anddm2001/go-mcp-universal/pkg/tools"
)
func main() {
// ... инициализация вашего приложения
// Запуск MCP сервера в отдельной горутине
go func() {
s := server.NewMCPServer("my-app", "0.1.0")
tools.RegisterRuntimeTools(s)
tools.RegisterEnvTools(s)
tools.RegisterTestTools(s)
tools.RegisterPprofTools(s)
tools.RegisterAITools(s)
server.ServeStdio(s)
}()
// ... основной цикл приложения
}
Структура проекта
go-mcp-universal/
├── cmd/
│ └── universal/ # Пример использования как отдельного приложения
├── pkg/
│ └── tools/ # Публичные инструменты для использования в других приложениях
│ ├── runtime.go # Инструменты для работы с горутинами
│ ├── env.go # Инструменты для работы с переменными окружения
│ ├── tests.go # Инструменты для запуска тестов
│ ├── pprof.go # Инструменты для pprof
│ └── ai.go # AI-инструменты
└── examples/ # Примеры использования
Способы запуска
1. Отдельный процесс (standalone)
Описание:
MCP сервер запускается как отдельное приложение. Все инструменты работают только с этим процессом.
Команда запуска:
go run ./cmd/universal
или
go build -o mcp-server ./cmd/universal
./mcp-server
Плюсы:
- Просто запускать и тестировать
- Не влияет на основное приложение
Минусы:
- Доступ только к рантайму самого MCP сервера, а не вашего основного приложения
2. Встраивание в основное приложение (рекомендуется)
Описание:
MCP сервер запускается внутри основного приложения. Все инструменты работают с этим процессом — вы получаете доступ к реальному состоянию вашего приложения.
Пример интеграции:
package main
import (
"github.com/mark3labs/mcp-go/server"
"github.com/anddm2001/go-mcp-universal/pkg/tools"
// ... ваш код
)
func main() {
// ... инициализация вашего приложения
// Запуск MCP сервера в отдельной горутине
go func() {
s := server.NewMCPServer("my-app", "0.1.0")
tools.RegisterRuntimeTools(s)
tools.RegisterEnvTools(s)
tools.RegisterTestTools(s)
tools.RegisterPprofTools(s)
tools.RegisterAITools(s)
server.ServeStdio(s)
}()
// ... основной цикл приложения
}
Плюсы:
- Доступ к реальному состоянию приложения (горутины, pprof, env)
- Можно использовать в production (с ограничением доступа)
Минусы:
- Требует изменения кода приложения
3. Запуск дочернего процесса (расширенный вариант)
Описание:
MCP сервер запускает ваше приложение как дочерний процесс и может управлять его жизненным циклом, но не имеет доступа к его рантайму напрямую (только к stdout/stderr, переменным окружения на старте и т.д.).
Пример (упрощённо):
// cmd/universal/main.go
package main
import (
"os/exec"
"log"
"github.com/mark3labs/mcp-go/server"
"github.com/anddm2001/go-mcp-universal/pkg/tools"
)
func main() {
// Запуск дочернего процесса
cmd := exec.Command("./your-app-binary")
if err := cmd.Start(); err != nil {
log.Fatalf("failed to start child: %v", err)
}
s := server.NewMCPServer("go-mcp-universal", "0.1.0")
tools.RegisterRuntimeTools(s)
tools.RegisterEnvTools(s)
tools.RegisterTestTools(s)
tools.RegisterPprofTools(s)
tools.RegisterAITools(s)
server.ServeStdio(s)
// Ожидание завершения дочернего процесса
cmd.Wait()
}
Плюсы:
- Можно запускать и контролировать отдельные приложения
Минусы:
- Нет доступа к рантайму дочернего процесса (горутины, pprof и т.д. будут показывать только MCP сервер)
Интеграция с Cursor.ai
- Запустите MCP сервер любым из способов выше.
- В Cursor.ai выберите "Connect MCP server" и укажите путь к исполняемому файлу или настройте stdio-подключение.
- Используйте инструменты MCP прямо из IDE.
Расширение AI-инструмента
В файле pkg/tools/ai.go реализован заглушечный инструмент. Вы можете заменить его на интеграцию с любым LLM (OpenAI, локальный LLM и т.д.).
Вопросы и поддержка
Если возникли вопросы по интеграции или расширению — создайте issue или напишите в обсуждение!
Software engineer. Write code and managment teams. Code on golang and php languages. Study Rust.
0
Followers
15
Repositories
0
Gists
0
Total Contributions