oskelly-mcp
oskelly-mcp
MCP 服务器,用于公开目录 oskelly.ru。14 个工具, 仅支持匿名只读操作,全部已在真实站点上验证。
非官方项目,与 Oskelly 无关联。它读取的内容与任何未注册访客看到的完全一致。 商标归其各自所有者所有。
许可证
Related MCP server: VkusVill MCP Server
安装
Node.js 22+。
git clone https://github.com/ihavealotofguap/oskelly-mcp.git
cd oskelly-mcp
npm ci
npm run build
npm run verifyClaude Desktop —
claude_desktop_config.json(Settings → Developer → Edit Config),路径必须是绝对路径:{ "mcpServers": { "oskelly": { "command": "node", "args": ["/abs/path/oskelly-mcp/dist/index.js"] } } }在 Windows 上出现
spawn node ENOENT→ 请将"node"替换为where node的输出,斜杠需要转义。修改后请完全重启应用程序,包括托盘图标。
Claude Code —
claude mcp add oskelly -- node /abs/path/oskelly-mcp/dist/index.js调试 —
npm run inspector
工具
工具 | 作用 |
| 过滤器模型速查表:代码、格式、如何将名称解析为 id |
| 搜索:查询、分面、价格、布尔标签、分页、排序 |
| 相同的查询,但返回计数和可用的分面,而不是商品 |
| 带 id 的单个分面的值( |
| 查询自动补全 |
| 分类树,按 |
| 带 id 的品牌,子串搜索,分页 |
| 商品状态及描述 |
| 属性字典(材质、颜色、…) |
| 按 id 或 URL 获取商品卡片:描述、属性、尺寸、照片、卖家 |
| 卖家的商品 |
| 卖家当前商品中实际存在的筛选条件 |
| 首页横幅(FEMALE/MALE/KIDS/LIFESTYLE) |
| 将横幅精选展开为筛选条件预设 + 商品 |
流程:describe_filters → list_brands/category_tree/filter_values → search_products → get_product。
范围
没有也不可能会有登录、Cookie、购物车、收藏、消息、订单。这是代码的固有特性:
credentials: "omit",没有任何Authorization/Cookie。POST 只允许用于三个只读搜索端点——
src/client.ts中的允许列表assertReadOnlyPost。所有工具:
readOnlyHint: true,destructiveHint: false。Smoke 测试检查工具列表中没有包含
login/cart/favourite/order/checkout/message/account的名称。
备注
商品卡片从
__NUXT_DATA__解析。 单个商品没有公开的 JSON 端点(GET /api/v2/products/{id}→ 404),页面由 Nuxt 3 在服务器端渲染。Payload 由官方包devalue解码——与 Nuxt 序列化它所用的库相同;自定义类型通过标准 revivers(src/nuxt.ts)接入。不是 Playwright:约 150 MB Chromium 和 3–5 秒,而一次 GET 仅约 150 ms。URL 中的 slug 会被忽略——只有末尾的数字 id 才有意义,工具两者都接受。
筛选条件格式 在
/products/search*请求体中:多选——id 数组({"brand": [675]}),布尔——裸 boolean({"sale": true}),价格——对象({"price": {"lower": 50000}})。{"brand": "675"}和{"sale": [true]}会被静默忽略,{"price": [a, b]}则返回success: false。价格按尺寸-SKU 过滤,而不是按卡片价格——商品可能会以低于界限的卡片价格进入结果,因此每个响应都带有
sizePriceRange: {min, max}。上游计数器已重命名:
totalAmount→totalMatches,itemsCount→itemsOnPage。区段(
baseCategory)——树节点的 id:女装=2,男装=105,童装=188,生活方式=366。WAF: query 中的西里尔字符必须进行百分号编码,否则返回 403。
上下文: 原始响应非常庞大(树约 1 MB,品牌约 750 KB),因此默认返回紧凑的投影;
verbose: true返回未修改的原始响应。
测试
npm run verify # офлайн: сервер стартует, 14 tools, все read-only
node smoke-test.mjs # живой end-to-end по MCP против oskelly.ruSmoke 测试以独立进程通过 stdio 启动编译后的服务器,并针对真实站点调用每个工具——不使用 mock。参数根据前一个响应链式构建(品牌 → 搜索 → productId → sellerId → 横幅),每次调用都会经过有意义的校验:PRICE_DESC 确实产生降序价格,conditionIds: [1] 确实只返回状态 1,筛选条件单调地缩小结果集。最近一次运行见 SMOKE-TEST-OUTPUT.txt(23 次调用,14/14 个工具,0 失败)。
CI 在 Node 22/24/26 上构建项目并运行 npm run verify。真实的 smoke 测试被放到手动运行(Actions → CI → Run workflow → run_smoke_test),以免从 runner 上频繁访问他人网站。
结构
src/client.ts HTTP-клиент, конверт, allow-list на POST
src/nuxt.ts извлечение и декодирование SSR-payload (devalue)
src/search.ts схема и сборка тела запроса для /products/search*
src/format.ts компактные проекции ответов
src/tools.ts определения 14 инструментов
src/index.ts точка входа, stdio-транспорт
scripts/verify-server.mjs офлайн-проверка поверхности tools (CI)
smoke-test.mjs живой end-to-end тест по протоколу MCP贡献
欢迎提交 PR。提交前请运行 npm run build、npm run verify、node smoke-test.mjs。
如果 oskelly 更新,最容易出问题的地方:__NUXT_DATA__ 格式(会以一个明确错误崩溃,提示在 src/nuxt.ts 中添加 reviver)、分面代码、区段 id。速率限制未测试;超时 45 秒,没有重试——这是有意为之。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityBmaintenanceMCP server for MoySklad (МойСклад) warehouse and CRM management API. 21 tools covering the full order lifecycle: products, stock, counterparties, customer orders, shipments, supplies, warehouses, organizations, reports, and webhooks.601215MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for VkusVill grocery store, enabling product search, details retrieval, and cart link creation.2
- AlicenseAqualityCmaintenanceA UCP-compliant MCP storefront server that exposes product catalog operations (search, cart, checkout) as MCP tools, following UCP schema version 2026-04-08.5MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that turns Wildberries marketplace into a toolkit for LLM agents, enabling product search, detailed card inspection, price history, reviews, and cross-product comparison.
Related MCP Connectors
Read-only MCP server for Muovi, Argentina's trust-first local services marketplace (6 tools).
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Pocket Agent (aipocketagent.com) MCP server — read tools for personas, apps, and product info.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ihavealotofguap/oskelly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server