원클릭으로
my-mcp-server
LlmProvider, ToolProvider trait implementations and MCP server integration
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
LlmProvider, ToolProvider trait implementations and MCP server integration
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Search the web for information using the WebSearch tool
Demonstrates governance blocking when plaintext secrets are detected in tool inputs
A simple demonstration skill that searches the web for information
Demonstration skill that attempts to use a plaintext secret, designed to be blocked by governance hooks
List, message, configure, and restart agents via the systemprompt CLI
View traffic, costs, agent stats, and bot detection via the systemprompt CLI
| name | Extension: AI & Tool Providers |
| description | LlmProvider, ToolProvider trait implementations and MCP server integration |
Provider traits enable custom LLM integrations, tool implementations, and MCP server management. Traits live in crates/shared/provider-contracts/src/.
Custom LLM provider integration for AI generation.
#[async_trait]
pub trait LlmProvider: Send + Sync {
fn provider_id(&self) -> &'static str;
async fn generate(&self, request: ChatRequest) -> Result<ChatResponse>;
async fn stream(
&self,
request: ChatRequest,
) -> Result<Pin<Box<dyn Stream<Item = Result<StreamChunk>> + Send>>>;
}
impl Extension for MyExtension {
fn llm_providers(&self) -> Vec<Arc<dyn LlmProvider>> {
vec![Arc::new(CustomLlmProvider::new())]
}
}
Priority: Tool > Agent > Global.
| Level | Source | Scope |
|---|---|---|
| Global | services/ai/config.yaml | All requests |
| Agent | services/agents/*.yaml metadata | Per-agent |
| Tool | tool_model_overrides | Per-tool-call |
Custom tool implementations for agent use.
#[async_trait]
pub trait ToolProvider: Send + Sync {
fn provider_id(&self) -> &'static str;
fn available_tools(&self) -> Vec<ToolDefinition>;
async fn execute_tool(&self, request: ToolCallRequest) -> Result<ToolCallResult>;
}
impl Extension for MyExtension {
fn tool_providers(&self) -> Vec<Arc<dyn ToolProvider>> {
vec![Arc::new(WebSearchToolProvider)]
}
}
Model Context Protocol servers provide tools to agents via JSON-RPC.
mcp_servers:
my-server:
type: internal
binary: my-mcp-server
package: my-mcp-server
port: 5020
endpoint: http://localhost:8080/api/v1/mcp/my-server/mcp
enabled: true
description: "My custom MCP server"
oauth:
required: true
scopes:
- admin
type: mcp
name: my-mcp-server
binary: my-mcp-server
description: "My custom MCP server"
port: 5020
build_type: workspace
enabled: true
metadata:
mcpServers:
- my-server
| Rule | Rationale |
|---|---|
| Provider IDs must be unique | Registry keyed by provider_id |
All providers are Send + Sync | Multi-threaded async context |
| MCP ports in 5000-5999 range | Configured in services/config/config.yaml |
| Agent ports in 9000-9999 range | Separate range from MCP |
| Tool definitions use JSON Schema | Standard parameter validation |
| LLM providers must support streaming | Required for real-time agent responses |