modelscope·@mrgoonie/screenshotone-mcp-server
将AI助手连接到ScreenshotOne.com API,以捕获网站截图。该API提供可自定义选项,包括视口大小、全页捕捉和多种输出格式。
该项目提供了一个模型上下文协议(MCP)服务器,用于将AI助手连接到ScreenshotOne.com API以捕获网站的屏幕截图。
Bearer <token>)bash
npm run dev:cli -- take-screenshot --url "https://example.com" --access-key "your-access-key"
npm run dev:cli -- take-screenshot --url "https://example.com" --viewport-width 1920 --viewport-height 1080
npm run dev:cli -- take-screenshot --url "https://example.com" --full-page
npm run dev:cli -- take-screenshot --url "https://example.com" --output screenshot.png
npm run dev:cli -- take-screenshot --url "https://example.com" --block-ads --block-trackers --block-cookie-banners
npm run dev:cli -- take-screenshot --url https://example.com --upload
npm run dev:cli -- take-screenshot --url https://example.com --upload --upload-filename my-screenshot
npm run dev:cli -- take-screenshot --url https://example.com --upload --upload-debug
对于使用stdio传输的本地配置: json { "mcpServers": { "screenshotone": { "command": "node", "args": ["/path/to/screenshotone-mcp-server/dist/index.js"], "transportType": "stdio" } } }
对于远程HTTP配置: json { "mcpServers": { "screenshotone": { "type": "http", "url": "http://localhost:8080/mcp" } } }
HTTP传输的环境变量:
您可以使用以下环境变量配置HTTP服务器:
MCP_HTTP_HOST: 绑定的主机 (默认: 127.0.0.1)MCP_HTTP_PORT: 监听的端口 (默认: 8080)MCP_HTTP_PATH: 端点路径 (默认: /mcp)模型上下文协议(MCP)是一个开放标准,允许AI系统安全且有上下文地连接到外部工具和数据源。
此模板实现了MCP规范,并具有清晰的分层架构,可以扩展以构建针对任何API或数据源的自定义MCP服务器。
类型安全:使用TypeScript构建,以提高开发体验、代码质量和可维护性。
工作示例:包含一个完全实现的IP查找工具,展示了从CLI到API集成的完整模式。
测试框架:附带单元测试和CLI集成测试的基础架构,包括覆盖率报告。
开发工具:预配置了ESLint、Prettier、TypeScript等质量工具,适用于MCP服务器开发。
bash
git clone https://github.com/mrgoonie/screenshotone-mcp-server.git cd screenshotone-mcp-server
npm install
使用stdio传输(默认)在开发模式下启动服务器:
bash npm run dev:server
或者使用Streamable HTTP传输:
bash npm run dev:server:http
这将以热重载方式启动MCP服务器,并启用位于http://localhost:5173的MCP Inspector。
⚙️ 代理服务器监听端口6277 🔍 MCP Inspector正在运行于http://127.0.0.1:6274
当使用HTTP传输时,默认情况下服务器将可在http://127.0.0.1:8080/mcp访问。
使用CLI进行截图:
bash
npm run dev:cli -- take-screenshot --url "https://example.com" --access-key "your-access-key"
npm run dev:cli -- take-screenshot --url "https://example.com" --format png --viewport-width 1920 --viewport-height 1080 --full-page --output screenshot.png
此模板遵循一种干净的分层架构模式,该模式分离了关注点并促进了可维护性。
src/ ├── cli/ # 命令行接口 ├── controllers/ # 业务逻辑 ├── resources/ # MCP资源:向LLMs暴露来自您服务器的数据和内容 ├── services/ # 外部API交互 ├── tools/ # MCP工具定义 ├── types/ # 类型定义 ├── utils/ # 共享实用程序 └── index.ts # 入口点
src/cli/*.cli.ts)<feature>.cli.ts<feature>.cli.test.tssrc/tools/*.tool.ts)<feature>.tool.ts,类型定义在<feature>.types.tssrc/controllers/*.controller.ts)<feature>.controller.tsControllerResponse对象src/services/*.service.ts)<feature>.service.tssrc/utils/*.util.ts)logger.util.ts:结构化日志记录error.util.ts:错误处理和标准化formatter.util.ts:Markdown格式化辅助函数bash
npm run dev:server
npm run dev:cli -- [command] [args]
npm run build
npm run start:server
npm run start:cli -- [command] [args]## 测试
bash
npm test
npm test -- src/path/to/test.ts
npm run test:coverage
bash
npm run lint
npm run format
npm run typecheck
按照以下步骤向服务器添加自己的工具:
在 src/services/ 中创建一个新的服务以与外部 API 交互:
typescript // src/services/example.service.ts import { Logger } from '../utils/logger.util.js';
const logger = Logger.forContext('services/example.service.ts');
export async function getData(param: string): Promise<any> { logger.debug('Getting data', { param }); // 在此处编写 API 交互代码 return { result: 'example data' }; }
在 src/controllers/ 中添加一个控制器来处理业务逻辑:
typescript // src/controllers/example.controller.ts import…
快递100 MCP Server提供快递信息查询、快递运费预估比价、快递时效查询(含发货前时效查询与在途动态时效查询)等功能。
暂无描述。
一个提供网页开发工具的MCP服务器,例如屏幕捕捉功能,可以让AI代理获取并处理用户屏幕的截图。
一个从网站提取有意义内容并将HTML转换为高质量Markdown的MCP服务器,使用Mozilla的Readability引擎。
一种模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页交互,而无需使用视觉模型或截图。
桌面通知、个性化声音、ntfy 手机应用通知、邮件通知和 API 推送,减少 AI 任务等待焦虑,舒适地享用一杯咖啡。