Mcp O11Y — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp O11Y (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that demonstrates how to incorporate comprehensive observability into MCP servers using Sentry, OpenTelemetry, and Braintrust.
#### Sentry
#### OpenTelemetry
#### Braintrust
npm installCopy the example environment file:
cp .env.example .envEdit .env with your configuration:
# Sentry (optional)
SENTRY_DSN=your_sentry_dsn_here
SENTRY_ENVIRONMENT=development
# Braintrust (optional)
BRAINTRUST_API_KEY=your_braintrust_api_key_here
BRAINTRUST_PROJECT_NAME=mcp-observability
# OpenTelemetry (configured by default)
OTEL_SERVICE_NAME=mcp-observability-server
OTEL_EXPORTER_JAEGER_ENDPOINT=http://localhost:14268/api/traces# Development mode
npm run dev
# Production mode
npm run build
npm startAdd to your Claude Desktop MCP configuration:
{
"mcpServers": {
"observability-server": {
"command": "node",
"args": ["/path/to/mcp-observability-server/dist/index.js"]
}
}
}SENTRY_DSN environment variabledocker run -d --name jaeger \
-p 16686:16686 \
-p 14268:14268 \
jaegertracing/all-in-one:latest// Read a file
{
"tool": "read_file",
"arguments": {
"path": "/path/to/file.txt",
"encoding": "utf8"
}
}
// Process JSON data
{
"tool": "process_json",
"arguments": {
"data": "{\"users\": [{\"name\": \"Alice\"}, {\"name\": \"Bob\"}]}",
"operation": "extract_keys",
"path": "users"
}
}
// Fetch URL
{
"tool": "fetch_url",
"arguments": {
"url": "https://api.github.com/users/octocat",
"method": "GET"
}
}// Get server status
{
"resource": "status://server"
}
// Health check
{
"resource": "status://health"
}
// Configuration
{
"resource": "config://server"
}src/
├── observability/ # Observability integrations
│ ├── sentry.ts # Sentry error tracking
│ ├── opentelemetry.ts # OpenTelemetry tracing
│ ├── braintrust.ts # Braintrust logging
│ └── index.ts # Unified observability wrapper
├── tools/ # MCP tools
│ ├── fileOperations.ts # File I/O tools
│ ├── dataProcessing.ts # Data manipulation tools
│ ├── httpClient.ts # HTTP client tools
│ └── index.ts # Tool registry
├── resources/ # MCP resources
│ ├── status.ts # Server status resource
│ ├── config.ts # Configuration resource
│ └── index.ts # Resource registry
└── index.ts # Main server entry pointAll tools are automatically wrapped with the withObservability decorator that:
# Type checking
npm run typecheck
# Linting
npm run lint
# Testing
npm testMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.