MCP鲨鱼通用
⚠️ ALPHA版本-仍在测试中\ 这是MCP Shark Common的alpha版本。该软件仍在积极开发和测试中。功能可能会发生变化,可能会出现错误或功能不完整。使用风险自负。
MCP Shark相关工作的公共库
MCP Shark Common是一个共享库,为MCP Shark项目提供通用功能。此包包含可重用的实用程序,包括数据库初始化、日志记录、查询实用程序和配置管理,这些实用程序在各种MCP Shark组件中使用。
🎯 概述
此套餐提供:
- 数据库管理:SQLite数据库初始化和模式创建
- 审计日志:MCP通信的结构化日志记录
- 查询实用程序:数据包、对话和会话的数据库查询助手
- 配置管理:应用程序数据目录的路径解析
✨ 特性
- 📊 数据库模式:用于数据包捕获、对话和会话的完整SQLite模式
- 🔍 查询助手:查询审计日志的便捷功能
- 📝 结构化日志记录:具有相关ID和元数据的全面日志记录
- 🔧 路径管理:应用程序数据目录的自动解析(
~/.mcp-shark/)
📦 安装
npm install @mcp-shark/mcp-shark-common🚀 用法
这是MCP Shark项目的通用库。导入所需的实用程序:
import {
// Database initialization
initDb,
openDb,
// Logging
getLogger,
// Query utilities
queryPackets,
queryRequests,
queryConversations,
getSessionPackets,
getSessions,
getStatistics,
// Configuration paths
getWorkingDirectory,
getDatabasePath,
getDatabaseFile,
getMcpConfigPath,
prepareAppDataSpaces,
readHelpState,
writeHelpState
} from '@mcp-shark/mcp-shark-common';数据库初始化
import { openDb } from '@mcp-shark/mcp-shark-common';
// Open or create database with schema
const db = openDb('/path/to/database.sqlite');日志记录
import { getLogger } from '@mcp-shark/mcp-shark-common';
const logger = getLogger(db);
// Log a request packet
logger.logRequestPacket({
method: 'POST',
url: '/mcp',
headers: { /* ... */ },
body: { /* ... */ },
userAgent: '...',
remoteAddress: '...'
});
// Log a response packet
logger.logResponsePacket({
statusCode: 200,
headers: { /* ... */ },
body: { /* ... */ },
requestFrameNumber: frameNumber,
requestTimestampNs: timestampNs
});配置路径
import {
getWorkingDirectory,
getDatabasePath,
getDatabaseFile,
getMcpConfigPath,
prepareAppDataSpaces
} from '@mcp-shark/mcp-shark-common';
// Get paths
const workingDir = getWorkingDirectory(); // ~/.mcp-shark
const dbPath = getDatabasePath(); // ~/.mcp-shark/db
const dbFile = getDatabaseFile(); // ~/.mcp-shark/db/mcp-shark.sqlite
const configPath = getMcpConfigPath(); // ~/.mcp-shark/mcps.json
// Create directories if they don't exist
prepareAppDataSpaces();📁 项目结构
该库按模块组织:
@mcp-shark/mcp-shark-common/
├── index.js # Main entry point (exports all utilities)
├── db/
│ ├── init.js # Database initialization and schema
│ ├── logger.js # Audit logging functions
│ └── query.js # Database query utilities
└── configs/
└── index.js # Configuration path management🗄️ 数据库模式
该包定义了一个包含三个主要表的全面SQLite模式:
packets
带有完整元数据的单个HTTP请求/响应数据包:
- 时间戳(纳秒精度)
- 指示(请求/响应)
- HTTP元数据(方法、URL、状态代码)
- 标头和正文(原始和解析的JSON)
- JSON-RPC元数据(ID、方法、结果、错误)
- 会话识别
- 网络元数据
conversations
相关请求/响应对:
- 将请求链接到相应的响应
- 跟踪对话流
- 包括时间和性能指标
sessions
有状态MCP交互的会话跟踪:
- 会话ID管理
- 会话元数据
- 生命周期跟踪
🛠️ 发展
脚本
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Check formatting
npm run format:check代码质量
- ESLint:使用Prettier集成进行代码过滤
- 更漂亮:代码格式
- 哈士奇:Git钩子用于预提交检查
- 提交校验:常规提交消息验证
📝 许可证
国际学生委员会
🤝 贡献
欢迎投稿!在提交之前,请确保您的代码通过了linting和格式检查。
______________________________________________________________________
内置于❤️ MCP鲨鱼
