1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//! # MCPRS: Model Context Protocol para Rust
//!
//! MCPRS é uma biblioteca que implementa o Model Context Protocol (MCP), um protocolo
//! padronizado para comunicação com diferentes serviços de modelos de linguagem (LLMs) e IA.
//!
//! ## Funcionalidades Principais
//!
//! - **Protocolo Padronizado**: Define um formato comum para mensagens trocadas com diferentes LLMs
//! - **Sistema de Agentes**: Abstração para integrações com diferentes APIs (OpenAI, DeepSeek, etc.)
//! - **Servidor e Cliente**: Implementações prontas para uso em aplicações
//! - **Autenticação**: Sistema de autenticação baseado em tokens
//! - **Histórico de Conversas**: Gerenciamento de contexto e histórico
//! - **Streaming**: Suporte para respostas incrementais em streaming
//!
//! ## Guia Rápido
//!
//! ### Cliente Simples
//!
//! ```rust,no_run
//! use mcprs::client::{create_mcp_message_for_agent, send_mcp_request};
//! use serde_json::json;
//!
//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
//! // Criar uma mensagem para o OpenAI
//! let message = create_mcp_message_for_agent(
//! "openai",
//! "chat",
//! json!({
//! "user_prompt": "Explique o que é Rust em poucas palavras"
//! })
//! );
//!
//! // Enviar para um servidor MCP
//! let response = send_mcp_request("http://localhost:3000/mcp", &message).await?;
//!
//! println!("Resposta: {}", response.payload["answer"]);
//! # Ok(())
//! # }
//! ```
//!
//! ### Servidor Básico
//!
//! ```rust,no_run
//! use mcprs::agent::AgentRegistry;
//! use mcprs::agent_openai::create_openai_agent;
//! use mcprs::server::run_http_server;
//! use std::net::SocketAddr;
//!
//! # async fn example() {
//! // Configurar variável de ambiente
//! std::env::set_var("OPENAI_API_KEY", "sua-chave-aqui");
//!
//! // Criar e configurar registro
//! let mut registry = AgentRegistry::new();
//! registry.register_agent(Box::new(create_openai_agent(None)));
//!
//! // Iniciar servidor
//! let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
//! run_http_server(registry, addr).await;
//! # }
//! ```
//!
//! ## Módulos Principais
//!
//! - [`agent`]: Define a trait AIAgent e estruturas básicas do protocolo
//! - [`server`]: Implementação do servidor HTTP para processar requisições MCP
//! - [`client`]: Funções para enviar requisições MCP
//! - [`agent_openai`]: Implementação de agente para a API OpenAI
//! - [`agent_deepseek`]: Implementação de agente para a API DeepSeek
//! - [`auth`]: Sistema de autenticação para o servidor
//! - [`conversation`]: Gerenciamento de histórico de conversas
//! - [`streaming`]: Suporte para respostas em streaming
/// Re-exporta tipos comumente usados para facilitar o uso
pub use ;
pub use ;
pub use ;
pub use ;
// Exportação adicional de funções do servidor
pub use run_http_server;
pub use run_http_server_with_auth;