Token导航 LogoToken导航

MCP Server · 安全风控

Atrawog MCP

MCP HTTP验证器是一个全面的测试工具,用于验证MCP服务器实现是否符合MCP规范,特别关注OAuth 2.0授权合规性和MCP特定端点验证。

stdio官方级别未说明来源级核验工具 0
Python安全开发工具

快速开始

作者 / 组织
atrawog
提供方
atrawog

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Atrawog MCP 属于安全风控类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

安全风控

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

pip install mcp-http-validator

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

MCP HTTP验证器

基于HTTP的验证器,用于具有OAuth 2.0授权测试的模型上下文协议(MCP)服务器。

快速示例

# Install
pip install mcp-http-validator

# Run full validation suite (handles OAuth automatically)
mcp-validate full https://mcp.example.com

# Or validate with existing token
mcp-validate validate https://mcp.example.com --token $ACCESS_TOKEN

概述

MCP HTTP验证器是一个全面的测试工具,用于验证MCP服务器实现是否符合 MCP规范它侧重于:

  • OAuth 2.0授权合规性(RFC 6749、RFC 8707、RFC 9728)
  • MCP特定终点验证
  • 令牌受众验证
  • 服务器发送事件(SSE)支持
  • 受保护的资源元数据合规性

特性

核心功能

  • 自动OAuth发现:从MCP元数据中发现OAuth服务器
  • 零配置:自动注册和保存OAuth客户端
  • 完整的MCP合规性测试:根据MCP 2025-06-18规范验证服务器
  • OAuth流测试:完成OAuth 2.0授权流验证
  • 动态客户端注册:支持RFC 7591用于自动客户端设置
  • 客户管理:RFC 7592支持更新/删除客户端
  • 资源指标:验证RFC 8707资源受限令牌
  • 多种输出格式:终端、JSON和Markdown报告
  • 凭据管理:OAuth凭据的安全.env文件存储
  • 无stdio依赖关系:纯基于HTTP的测试

高级功能

  • 智能令牌管理:在OAuth流之前自动检查令牌有效性
  • 令牌刷新:在启动新身份验证之前尝试刷新令牌流
  • SSE支持:MCP SSE传输的完整服务器发送事件测试
  • 工具发现:MCP服务器工具的自动发现和测试
  • 运输检测:自动检测SSE与HTTP传输
  • 批量测试: full 命令自动运行完整的测试套件
  • 进度报告:长时间运行期间的实时进度更新
  • 重定向策略:支持公共IP和带外OAuth流
  • JWT验证:解码和验证JWT令牌的到期时间和受众
  • 每台服务器隔离:每个MCP服务器都有自己的凭据命名空间

安装

pip install mcp-http-validator

或者从源代码安装:

git clone https://github.com/example/mcp-http-validator
cd mcp-http-validator
pip install -e .

快速开始

命令行用法

1.基本验证
# Validate an MCP server (automatic OAuth discovery and setup)
mcp-validate validate https://mcp.example.com

# Use existing access token
mcp-validate validate https://mcp.example.com --token $ACCESS_TOKEN

# With additional options
mcp-validate validate https://mcp.example.com \
  --output json \
  --output-file report.json \
  --verbose \
  --timeout 60

选项:

  • --token, -t:用于身份验证测试的OAuth访问令牌
  • --output, -o:输出格式(终端/json/makdown)
  • --output-file, -f:将输出保存到文件
  • --no-ssl-verify:禁用SSL证书验证
  • --timeout:请求超时(秒)(默认值:30)
  • --verbose, -v:显示详细的测试信息
2.完整的测试套件
# Run ALL validation tests in the correct order
mcp-validate full https://mcp.example.com

# Include destructive tool tests (use with caution!)
mcp-validate full https://mcp.example.com --test-destructive --verbose

此命令自动执行:

  1. 从MCP元数据中发现OAuth服务器
  2. 如果需要,注册OAuth客户端
  3. 完成访问令牌的OAuth流
  4. 运行主MCP验证
  5. 测试所有MCP工具
3.OAuth身份验证流程
# Complete OAuth flow (checks for existing valid token first)
mcp-validate flow https://mcp.example.com

# Force new flow even if valid token exists
mcp-validate flow https://mcp.example.com --force

# Request specific scopes
mcp-validate flow https://mcp.example.com --scope "mcp:read"

流命令自动执行:

  • 检查现有的有效访问令牌
  • 如果已过期,尝试刷新令牌
  • 仅在必要时启动新的OAuth流
  • 支持公共IP和带外重定向策略
4.OAuth客户端管理(RFC 7591/7592)
# Register a new OAuth client
mcp-validate client register https://mcp.example.com

# Force new registration (replaces existing)
mcp-validate client register https://mcp.example.com --force

# Also validate RFC 7592 support
mcp-validate client register https://mcp.example.com --validate-rfc7592

# List all saved OAuth clients
mcp-validate client list

# Update client configuration (RFC 7592)
mcp-validate client update https://mcp.example.com \
  --client-name "My MCP Client" \
  --redirect-uri "http://localhost:8080/callback" \
  --scope "mcp:read mcp:write"

# Delete client registration
mcp-validate client delete https://mcp.example.com
5.代币管理
# List all stored tokens and their status
mcp-validate tokens list

# Show detailed token status for a specific server
mcp-validate tokens show https://mcp.example.com

# Refresh access token using refresh token
mcp-validate tokens refresh https://mcp.example.com

# Clear tokens for a server (keeps client credentials)
mcp-validate tokens clear https://mcp.example.com
6.MCP工具测试
# Discover and test all tools
mcp-validate tools https://mcp.example.com

# List tools without testing
mcp-validate tools https://mcp.example.com --list-only

# Test specific tool
mcp-validate tools https://mcp.example.com --tool-name "search"

# Include destructive tool tests
mcp-validate tools https://mcp.example.com --test-destructive
7.直接OAuth服务器测试
# Test an OAuth authorization server directly
mcp-validate oauth https://auth.example.com

# Register new client with OAuth server
mcp-validate oauth https://auth.example.com --register

程序化使用

import asyncio
from mcp_http_validator import MCPValidator, ComplianceChecker

async def validate_server():
    async with MCPValidator(
        server_url="https://mcp.example.com",
        auto_register=True  # Automatically discover OAuth and register client
    ) as validator:
        # OAuth client is automatically set up if needed
        await validator.setup_oauth_client()
        
        result = await validator.validate()
        
    checker = ComplianceChecker(result, validator.server_info)
    report = checker.check_compliance()
    
    print(f"Compliance Level: {report.compliance_level}")
    print(f"Success Rate: {result.success_rate:.1f}%")

asyncio.run(validate_server())

配置

验证器自动管理OAuth凭据和令牌 .env 文件:

手动配置

# Manual access token for pre-authenticated testing
MCP_ACCESS_TOKEN=your-access-token

# Default OAuth credentials (fallback if server-specific not found)
OAUTH_CLIENT_ID=default-client-id
OAUTH_CLIENT_SECRET=default-client-secret

每台服务器自动存储

验证器会自动保存带有服务器特定密钥的凭据:

# OAuth client credentials (RFC 7591)
OAUTH_CLIENT_ID_MCP_EXAMPLE_COM=mcp_client_123456
OAUTH_CLIENT_SECRET_MCP_EXAMPLE_COM=secret_abcdef...
OAUTH_REGISTRATION_TOKEN_MCP_EXAMPLE_COM=reg_token_xyz...
OAUTH_REDIRECT_URI_MCP_EXAMPLE_COM=http://localhost:61234/callback

# OAuth tokens
OAUTH_ACCESS_TOKEN_MCP_EXAMPLE_COM=eyJhbGc...
OAUTH_TOKEN_EXPIRES_AT_MCP_EXAMPLE_COM=1234567890
OAUTH_REFRESH_TOKEN_MCP_EXAMPLE_COM=refresh_token_abc...

服务器URL通过以下方式转换为环境变量键:

  1. 删除协议(https://)
  2. 用下划线替换圆点和特殊字符
  3. 转换为大写

例子: https://mcp.example.com → MCP_EXAMPLE_COM

自动功能

验证器提供智能凭证管理:

  1. 自动发现:从MCP元数据中发现OAuth服务器
  2. 自动注册:需要时通过RFC 7591注册的客户端
  3. 许可证管理:自动令牌验证和刷新
  4. 安全存储:所有凭据保存到 .env 文件
  5. 服务器隔离:每个服务器都有自己的凭据

验证测试

验证器执行以下测试:

关键测试(必需)

  • 受保护资源元数据: /.well-known/oauth-protected-resource 端点
  • 身份验证质询:带有WWW-Authenticate标头的正确401响应
  • 认证访问:有效的持票人令牌接受

重要测试

  • 令牌受众验证:验证令牌 aud 声明包含服务器URL
  • 资源令牌一致性:验证受保护的资源元数据是否与令牌受众匹配
  • SSE支持:MCP协议的服务器发送事件

OAuth服务器测试

  • 授权服务器元数据发现
  • 资源指示器支持(RFC 8707)
  • 所需端点可用性
  • MCP范围支持(mcp:read, mcp:write)

输出格式

终端输出

丰富的彩色输出,带有表格和进度指示器:

┌─────────────────────────────────────┐
│ MCP Compliance Report               │
│ Server: https://mcp.example.com     │
│ Compliance Level: FULLY_COMPLIANT   │
└─────────────────────────────────────┘

JSON输出

用于程序化处理的完整结构化数据:

mcp-validate validate https://mcp.example.com -o json -f report.json

Markdown输出

人类可读的文档报告:

mcp-validate validate https://mcp.example.com -o markdown -f report.md

完整测试套件输出

这 full 命令提供全面的结果:

mcp-validate full https://mcp.example.com --verbose

显示每个阶段的进度:

  • OAuth服务器发现和验证
  • 客户注册状态
  • 代币获取进度
  • MCP验证结果
  • 工具发现和测试

合规级别

  • 完全合规:所有测试均通过(100%)
  • 最符合要求:90%以上的测试通过
  • 部分合规:70%以上的测试通过或关键测试失败
  • 最小兼容性:一些测试通过,但存在重大问题
  • 不合规:关键要求的测试失败

高级用法

自定义验证测试

from mcp_http_validator import MCPValidator, TestCase, TestSeverity

class CustomValidator(MCPValidator):
    async def test_custom_endpoint(self):
        """Test a custom MCP endpoint."""
        response = await self.client.get(
            f"{self.server_url}/custom",
            headers=self._get_headers()
        )
        
        passed = response.status_code == 200
        error = None if passed else f"Got {response.status_code}"
        
        return passed, error, {"status": response.status_code}
    
    async def validate(self):
        # Add custom test
        custom_test = TestCase(
            id="custom-endpoint",
            name="Custom Endpoint Test",
            description="Validates custom MCP endpoint",
            severity=TestSeverity.MEDIUM,
            category="custom"
        )
        
        result = await self._execute_test(
            custom_test,
            self.test_custom_endpoint
        )
        self.test_results.append(result)
        
        # Run standard tests
        return await super().validate()

OAuth流自动化

from mcp_http_validator import MCPValidator, EnvManager

async def automated_oauth_test(mcp_server: str):
    # Automatic OAuth discovery and registration
    async with MCPValidator(mcp_server) as validator:
        # Discovers OAuth server and registers client automatically
        oauth_client = await validator.setup_oauth_client()
        
        if oauth_client:
            # Generate auth URL with discovered OAuth server
            auth_url, state, verifier = oauth_client.generate_authorization_url(
                resources=[mcp_server]
            )
            
            print(f"Visit: {auth_url}")
            code = input("Enter code: ")
            
            # Exchange for token
            token = await oauth_client.exchange_code_for_token(
                code, verifier, [mcp_server]
            )
            
            # Test access
            success, error, _ = await oauth_client.test_mcp_server_with_token(
                mcp_server, token.access_token
            )
            print(f"Access: {'✓' if success else '✗'} {error or 'OK'}")

# RFC 7592 Client Management
async def manage_oauth_client(mcp_server: str):
    env_manager = EnvManager()
    credentials = env_manager.get_oauth_credentials(mcp_server)
    
    async with MCPValidator(mcp_server) as validator:
        auth_server = await validator.discover_oauth_server()
        
        async with OAuthTestClient(
            auth_server,
            registration_access_token=credentials["registration_token"]
        ) as client:
            # Get current config
            config = await client.get_client_configuration()
            
            # Update client
            await client.update_client_configuration({
                "client_name": "Updated Name"
            })
            
            # Or delete client
            # await client.delete_client_registration()

故障排除

常见问题

  1. “未发现OAuth服务器”

- 确保MCP服务器实现 /.well-known/oauth-protected-resource - 检查元数据是否包括 authorization_servers 数组 - 使用 --no-ssl-verify 用于具有自签名证书的开发服务器

  1. 验证期间“令牌已过期”

- 跑 mcp-validate tokens refresh https://mcp.example.com 刷新 - 或使用 mcp-validate flow https://mcp.example.com 对于新令牌

  1. “客户端注册失败”

- 检查OAuth服务器是否支持RFC 7591动态注册 - 尝试在OAuth服务器的web界面上手动注册 - 将环境变量用于手动客户端凭据

  1. “SSL验证失败”

- 开发:使用 --no-ssl-verify 旗帜 - 对于生产:确保有效的SSL证书

  1. “.env上的权限被拒绝”

- 检查文件权限: chmod 600 .env - 确保目录可写

调试模式

有关详细的调试信息:

# Verbose output for any command
mcp-validate validate https://mcp.example.com --verbose

# Check stored credentials
mcp-validate client list
mcp-validate tokens list

# Test OAuth server directly
mcp-validate oauth https://auth.example.com

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 确保所有测试通过
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

另见

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

MCP验证Python本地部署OAuth2.0测试HTTP验证工具服务器合规性检查自动客户端注册

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Atrawog MCP

MCP World · 本页

0stdio有1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Atrawog MCP 怎么安装?

公开资料给出的安装命令是 pip install mcp-http-validator,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Atrawog MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Atrawog MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Atrawog MCP 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Atrawog MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP