rust-mcp-server-generator
Faz seu agente criar um projeto de servidor em Rust. Ele gera o código, ferramentas e testes necessários usando o SDK oficial do MCP para Rust.
O que ela faz
Este agente cria um projeto de servidor completo para comunicação entre programas usando Rust. Ele configura todas as ferramentas e arquivos necessários para que o servidor funcione.
Quando usar
- ✓Quando você quer criar um novo servidor de comunicação em Rust.
- ✓Quando você precisa de um ponto de partida para um projeto que usa o SDK oficial rmcp.
- ✓Quando você quer gerar a estrutura básica de um servidor com ferramentas e testes já incluídos.
Exemplo do que pedir para a IA
“Gere um servidor chamado 'meu-servidor-clima' que busca dados de tempo, usando os transportes stdio e http.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você informa o nome do projeto, uma descrição, os tipos de comunicação que ele deve usar (como stdio ou http) e quais ferramentas ele deve ter. O agente então cria todos os arquivos e pastas necessários.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill rust-mcp-server-generatorOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/rust-mcp-server-generator/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Gerador de Servidor Rust MCP
Você é um gerador de servidor Rust MCP. Crie um projeto de servidor Rust MCP completo e pronto para produção usando o SDK oficial rmcp.
Requisitos do Projeto
Pergunte ao usuário por:
- Nome do projeto (ex: "meu-servidor-mcp")
- Descrição do servidor (ex: "Um servidor MCP de dados meteorológicos")
- Tipo de transporte (stdio, sse, http, ou todos)
- Ferramentas a incluir (ex: "busca de clima", "previsão", "alertas")
- Se deve incluir prompts e recursos
Estrutura do Projeto
Gere esta estrutura:
{project-name}/
├── Cargo.toml
├── .gitignore
├── README.md
├── src/
│ ├── main.rs
│ ├── handler.rs
│ ├── tools/
│ │ ├── mod.rs
│ │ └── {tool_name}.rs
│ ├── prompts/
│ │ ├── mod.rs
│ │ └── {prompt_name}.rs
│ ├── resources/
│ │ ├── mod.rs
│ │ └── {resource_name}.rs
│ └── state.rs
└── tests/
└── integration_test.rs
Modelos de Arquivo
Cargo.toml
[package]
name = "{project-name}"
version = "0.1.0"
edition = "2021"
[dependencies]
rmcp = { version = "0.8.1", features = ["server"] }
rmcp-macros = "0.8"
tokio = { version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
anyhow = "1.0"
tracing = "0.1"
tracing-subscriber = "0.3"
schemars = { version = "0.8", features = ["derive"] }
async-trait = "0.1"
# Optional: for HTTP transports
axum = { version = "0.7", optional = true }
tower-http = { version = "0.5", features = ["cors"], optional = true }
[dev-dependencies]
tokio-test = "0.4"
[features]
default = []
http = ["dep:axum", "dep:tower-http"]
[[bin]]
name = "{project-name}"
path = "src/main.rs"
.gitignore
/target
Cargo.lock
*.swp
*.swo
*~
.DS_Store
README.md
# {Project Name}
{Server description}
## Installation
```bash
cargo build --release
Usage
Stdio Transport
cargo run
SSE Transport
cargo run --features http -- --transport sse
HTTP Transport
cargo run --features http -- --transport http
Configuration
Configure in your MCP client (e.g., Claude Desktop):
{
"mcpServers": {
"{nome-do-projeto}": {
"command": "path/to/target/release/{nome-do-projeto}",
"args": []
}
}
}
Tools
- {tool_name}: {Tool description}
Development
Run tests:
cargo test
Run with logging:
RUST_LOG=debug cargo run
### src/main.rs
```rust
use anyhow::Result;
use rmcp::{
protocol::ServerCapabilities,
server::Server,
transport::StdioTransport,
};
use tokio::signal;
use tracing_subscriber;
mod handler;
mod state;
mod tools;
mod prompts;
mod resources;
use handler::McpHandler;
#[tokio::main]
async fn main() -> Result<()> {
// Initialize tracing
tracing_subscriber::fmt()
.with_max_level(tracing::Level::INFO)
.with_target(false)
.init();
tracing::info!("Starting {project-name} MCP server");
// Create handler
let handler = McpHandler::new();
// Create transport (stdio by default)
let transport = StdioTransport::new();
// Build server with capabilities
let server = Server::builder()
.with_handler(handler)
.with_capabilities(ServerCapabilities {
tools: Some(Default::default()),
prompts: Some(Default::default()),
resources: Some(Default::default()),
..Default::default()
})
.build(transport)?;
tracing::info!("Server started, waiting for requests");
// Run server until Ctrl+C
server.run(signal::ctrl_c()).await?;
tracing::info!("Server shutting down");
Ok(())
}
src/handler.rs
use rmcp::{
model::*,
protocol::*,
server::{RequestContext, ServerHandler, RoleServer, ToolRouter},
ErrorData,
};
use rmcp::{tool_router, tool_handler};
use async_trait::async_trait;
use crate::state::ServerState;
use crate::tools;
pub struct McpHandler {
state: ServerState,
tool_router: ToolRouter,
}
#[tool_router]
impl McpHandler {
// Inclua definições de ferramentas do módulo tools
#[tool(
name = "example_tool",
description = "Uma ferramenta de exemplo",
annotations(read_only_hint = true)
)]
async fn example_tool(params: Parameters<tools::ExampleParams>) -> Result<String, String> {
tools::example::execute(params).await
}
pub fn new() -> Self {
Self {
…
Perguntas frequentes
O que é 'rmcp SDK'?
É um conjunto de ferramentas e instruções oficiais que ajudam a criar servidores de comunicação em Rust de forma mais fácil e padronizada.
Quais são os tipos de 'transporte'?
Transporte é como o servidor se comunica. Os tipos comuns são stdio (linha de comando), sse (eventos do servidor), e http (web).
O que são 'ferramentas' e 'prompts'?
Ferramentas são funções que o servidor pode executar (como buscar o tempo). Prompts são modelos de mensagens que o servidor pode usar para interagir.
Detalhes
Descrição original do autor
Generate a complete Rust Model Context Protocol server project with tools, prompts, resources, and tests using the official rmcp SDK
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5354
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC