llmconveyors-mcp
llmconveyors-mcp
MCP 服务器,用于将 AI 代理连接到 LLM Conveyors 平台 —— 可直接从 Claude、Cursor 或任何支持 MCP 的客户端运行求职助手、B2B 销售及其他 AI 代理。
什么是 LLM Conveyors?
这是一个社区驱动的 AI 代理平台,采用按操作付费的定价模式(每个完成的操作 1–5 美元)。无需每月支付 100 美元的 SaaS 订阅费,您只需为实际产出付费 —— 例如简历评分、公司研究或生成的冷邮件。
实时代理:
求职助手 (Job Hunter) — 为求职申请生成定制的简历、求职信和冷邮件
B2B 销售 (B2B Sales) — 进行深入的公司研究并生成个性化的销售外联内容
Related MCP server: boss-agent-cli
快速入门
1. 获取 API 密钥
在 llmconveyors.com 注册,并从“设置”→“API 密钥”中创建 API 密钥。
2. 添加到您的 MCP 客户端
添加到 claude_desktop_config.json:
{
"mcpServers": {
"llmconveyors": {
"command": "npx",
"args": ["-y", "llmconveyors-mcp"],
"env": {
"LLMC_API_KEY": "llmc_your_key_here"
}
}
}
}claude mcp add llmconveyors -- npx -y llmconveyors-mcp在您的 shell 或 .env 文件中设置环境变量:
export LLMC_API_KEY=llmc_your_key_here添加到 .cursor/mcp.json:
{
"mcpServers": {
"llmconveyors": {
"command": "npx",
"args": ["-y", "llmconveyors-mcp"],
"env": {
"LLMC_API_KEY": "llmc_your_key_here"
}
}
}
}添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"llmconveyors": {
"command": "npx",
"args": ["-y", "llmconveyors-mcp"],
"env": {
"LLMC_API_KEY": "llmc_your_key_here"
}
}
}
}3. 开始使用
询问您的 AI 代理:
"为 Anthropic 的高级工程师职位运行求职助手代理。职位描述如下:..."
"根据此职位发布信息对我的简历进行 ATS 兼容性评分。"
"研究 Stripe 并为我们的开发者工具产品起草一封 B2B 冷邮件。"
可用工具 (66)
代理
工具 | 描述 |
| 运行求职助手代理 —— 生成定制的简历、求职信和冷邮件 |
| 运行 B2B 销售代理 —— 研究公司并生成销售外联内容 |
| 检查正在运行的代理任务的状态 |
| 为等待输入的阶段性代理工作流提交响应 |
| 同步生成简历(速度更快,仅限简历) |
| 获取代理的输入字段、功能和计费信息 |
简历
工具 | 描述 |
| 将简历文件解析为结构化的 JSON Resume 格式 |
| 验证 JSON Resume 格式的简历 |
| 将简历渲染为 PDF 或 HTML |
| 以 HTML 格式预览简历 |
| 列出可用的简历主题 |
| 从 Reactive Resume 格式导入 |
| 导出为 Reactive Resume 格式 |
主简历
工具 | 描述 |
| 创建新的主简历 |
| 列出所有主简历 |
| 通过 ID 获取主简历 |
| 更新主简历 |
| 删除主简历 |
上传与解析
工具 | 描述 |
| 上传并解析简历文件 (base64) |
| 上传并解析职位描述文件 (base64) |
| 从文本或 URL 解析职位描述 |
ATS 评分
工具 | 描述 |
| 根据职位描述对简历进行 ATS 兼容性评分 |
会话
工具 | 描述 |
| 创建新会话 |
| 列出会话(可选过滤) |
| 通过 ID 获取会话 |
| 获取包含工件和日志的完整会话 |
| 通过存储键从会话下载工件 |
| 删除会话 |
| 使用代理上下文和配置初始化会话 |
| 将日志条目附加到会话 |
设置与 API 密钥
工具 | 描述 |
| 获取用户资料(积分、套餐) |
| 获取用户偏好设置 |
| 更新用户偏好设置 |
| 获取使用情况摘要 |
| 获取分页的使用日志 |
| 创建新的 API 密钥 |
| 列出所有 API 密钥 |
| 撤销 API 密钥 |
| 轮换 API 密钥 |
| 获取特定 API 密钥的使用统计信息 |
| 检查是否配置了自带 (BYO) API 密钥 |
| 为提供商(例如 Gemini)设置自带 API 密钥 |
| 移除已配置的自带 API 密钥 |
| 获取当前的 Webhook 密钥 |
| 轮换 Webhook 密钥 |
内容与共享
工具 | 描述 |
| 保存源文档以作为 AI 生成的上下文 |
| 删除生成内容及其工件 |
| 研究发送者的背景以生成个性化内容 |
| 列出所有已保存的源文档 |
| 通过 ID 获取特定源文档 |
| 删除已保存的源文档 |
| 为生成的内容创建公共共享链接 |
| 获取共享链接统计信息 |
| 通过 slug 获取公共共享内容 |
| 获取特定共享链接的访问统计信息 |
隐私
工具 | 描述 |
| 列出当前用户的所有同意记录 |
| 授予特定数据处理目的的同意 |
| 撤销先前授予的同意 |
推荐
工具 | 描述 |
| 获取推荐计划统计信息 |
| 获取您的推荐代码 |
| 设置自定义个性化推荐代码 |
文档
工具 | 描述 |
| 通过存储路径下载工件 |
健康检查
工具 | 描述 |
| 获取服务器信息和版本 |
| 对所有依赖项运行全面健康检查 |
| 检查服务器是否准备好接受请求 |
| 检查服务器进程是否存活 |
API 密钥作用域
您的 API 密钥需要具备您想要使用的工具的相应作用域:
作用域 | 工具 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
环境变量
变量 | 必需 | 描述 |
| 是 | 您的 LLM Conveyors API 密钥(前缀为 |
| 否 | 自定义 API 端点(默认为 |
开发
git clone https://github.com/ebenezer-isaac/llmconveyors-mcp.git
cd llmconveyors-mcp
npm install
npm run build
# Test locally
LLMC_API_KEY=llmc_your_key node dist/index.js要求
Node.js >= 18
LLM Conveyors API 密钥(在此处获取)
链接
许可证
MIT — 详情请参阅 LICENSE。
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
54 tool updates
v0.1.1- Added
agent-interact - Changed
agent-status1 field changed- added
Input schema / properties / includeAdded value: +{ + "description": "Data to include. Defaults to both logs and artifacts. Omit for lightweight status checks.", + "items": { + "enum": [ + "logs", + "artifacts" + ], + "type": "string" + }, + "type": "array" +}
- Changed
api-key-create4 fields changed- added
Input schema / properties / expiresAtAdded value: +{ + "description": "Expiration date as ISO 8601 string", + "type": "string" +} - added
Input schema / properties / monthlyCreditsLimitAdded value: +{ + "description": "Monthly credit usage cap for this key", + "type": "number" +} - changed
Input schema / properties / scopes / descriptionPrevious value: -"Permission scopes for the key"New value: +"Permission scopes for the key. Use '*' for all scopes." - changed
Input schema / properties / scopes / items / enumPrevious value: -[ - "jobs:write", - "jobs:read", - "sales:write", - "sales:read", - "sessions:read", - "sessions:write", - "settings:read", - "settings:write", - "upload:write", - "resume:read", - "resume:write", - "ats:write", - "webhook:read", - "webhook:write" -]New value: +[ + "*", + "jobs:write", + "jobs:read", + "sales:write", + "sales:read", + "sessions:read", + "sessions:write", + "settings:read", + "settings:write", + "upload:write", + "resume:read", + "resume:write", + "ats:write", + "webhook:read", + "webhook:write", + "outreach:read", + "outreach:write" +]
- Removed
api-key-revoke - Changed
api-key-rotate1 field changed- added
Input schema / properties / gracePeriodHoursAdded value: +{ + "description": "Hours the old key remains valid after rotation (default: 24)", + "type": "number" +}
- Added
api-key-usage - Changed
ats-score1 field changed- added
Input schema / properties / jobTitleAdded value: +{ + "description": "Job title for additional context", + "type": "string" +}
- Changed
b2b-sales-run20 fields changed- added
Input schema / properties / autoApproveDraftAdded value: +{ + "description": "Set false to pause for draft review before finalizing", + "type": "boolean" +} - added
Input schema / properties / autoApproveFollowupsAdded value: +{ + "description": "Set false to pause for follow-up review before finalizing", + "type": "boolean" +} - added
Input schema / properties / autoSelectContactsAdded value: +{ + "description": "Set false for phased execution with contact selection gate", + "type": "boolean" +} - added
Input schema / properties / companyResearchAdded value: +{ + "description": "Pre-researched company information to skip research phase", + "type": "string" +} - added
Input schema / properties / contactEmailAdded value: +{ + "description": "Target contact email address", + "type": "string" +} - added
Input schema / properties / contactNameAdded value: +{ + "description": "Target contact name", + "type": "string" +} - added
Input schema / properties / contactTitleAdded value: +{ + "description": "Target contact job title", + "type": "string" +} - added
Input schema / properties / followUpCountAdded value: +{ + "description": "Number of follow-up emails to generate", + "type": "number" +} - added
Input schema / properties / followUpDelayDaysAdded value: +{ + "description": "Days between follow-up emails", + "type": "number" +} - added
Input schema / properties / generationIdAdded value: +{ + "description": "Existing generation ID to continue", + "type": "string" +} - added
Input schema / properties / modelAdded value: +{ + "description": "AI model: flash (faster/cheaper) or pro (higher quality)", + "enum": [ + "flash", + "pro" + ], + "type": "string" +} - added
Input schema / properties / reconStrategyAdded value: +{ + "description": "Strategy instructions for company research/recon phase", + "type": "string" +} - added
Input schema / properties / researchModeAdded value: +{ + "description": "Research execution mode: parallel (faster) or sequential", + "enum": [ + "parallel", + "sequential" + ], + "type": "string" +} - added
Input schema / properties / salesStrategyAdded value: +{ + "description": "Sales strategy to use for outreach generation", + "type": "string" +} - added
Input schema / properties / senderNameAdded value: +{ + "description": "Name of the person sending the outreach", + "type": "string" +} - added
Input schema / properties / sessionIdAdded value: +{ + "description": "Existing session ID to continue a previous run", + "type": "string" +} - added
Input schema / properties / skipResearchCacheAdded value: +{ + "description": "Force fresh company research instead of using cache", + "type": "boolean" +} - removed
Input schema / properties / strategyRemoved value: -{ - "description": "Sales strategy or approach", - "type": "string" -} - added
Input schema / properties / targetCompanyContextAdded value: +{ + "description": "Pre-researched context about the target company", + "type": "string" +} - added
Input schema / properties / userCompanyContextAdded value: +{ + "description": "Context about your own company for personalization", + "type": "string" +}
- Added
byo-key-get - Added
byo-key-remove - Added
byo-key-set - Added
content-delete-source - Added
content-get-source - Added
content-list-sources - Added
content-research-sender - Removed
content-save - Added
health-check - Added
health-live - Added
health-ready - Added
health-root - Added
job-hunter-generate-cv - Changed
job-hunter-run23 fields changed- added
Input schema / properties / autoSelectContactsAdded value: +{ + "description": "Set false for phased execution with contact selection gate. Default true for API keys.", + "type": "boolean" +} - added
Input schema / properties / coldEmailStrategyAdded value: +{ + "description": "Strategy instructions for cold email generation", + "type": "string" +} - added
Input schema / properties / companyProfileAdded value: +{ + "description": "Pre-researched company profile to skip research phase", + "type": "string" +} - added
Input schema / properties / companyWebsiteAdded value: +{ + "description": "Target company website URL for research phase", + "type": "string" +} - added
Input schema / properties / contactTitleAdded value: +{ + "description": "Contact job title", + "type": "string" +} - added
Input schema / properties / coverLetterStrategyAdded value: +{ + "description": "Strategy instructions for cover letter generation", + "type": "string" +} - added
Input schema / properties / cvStrategyAdded value: +{ + "description": "Strategy instructions for CV generation", + "type": "string" +} - added
Input schema / properties / emailAddressesAdded value: +{ + "description": "Comma-separated email addresses for outreach", + "type": "string" +} - added
Input schema / properties / extensiveCVAdded value: +{ + "description": "Extended/detailed CV text for richer generation", + "type": "string" +} - added
Input schema / properties / generationIdAdded value: +{ + "description": "Existing generation ID to continue", + "type": "string" +} - added
Input schema / properties / genericEmailAdded value: +{ + "description": "Generic company email (e.g. careers@company.com) as fallback", + "type": "string" +} - added
Input schema / properties / jobSourceUrlAdded value: +{ + "description": "URL of the original job posting", + "type": "string" +} - added
Input schema / properties / modelAdded value: +{ + "description": "AI model: flash (faster/cheaper) or pro (higher quality)", + "enum": [ + "flash", + "pro" + ], + "type": "string" +} - added
Input schema / properties / originalCVAdded value: +{ + "description": "Original CV text to use directly instead of master resume", + "type": "string" +} - added
Input schema / properties / reconStrategyAdded value: +{ + "description": "Strategy instructions for company research/recon phase", + "type": "string" +} - added
Input schema / properties / sessionIdAdded value: +{ + "description": "Existing session ID to continue a previous run", + "type": "string" +} - added
Input schema / properties / skipResearchCacheAdded value: +{ + "description": "Force fresh company research instead of using cache", + "type": "boolean" +} - added
Input schema / properties / specificCoreAdded value: +{ + "description": "Specific core competencies or skills to emphasize", + "type": "string" +} - changed
Input schema / properties / theme / descriptionPrevious value: -"Resume theme (Even, StackOverflow, Class, Professional)"New value: +"Resume theme" - added
Input schema / properties / theme / enumAdded value: +[ + "even", + "stackoverflow", + "class", + "professional", + "elegant", + "macchiato", + "react", + "academic" +] - added
Input schema / properties / tierAdded value: +{ + "description": "Billing tier: free (platform credits) or byo (bring your own key)", + "enum": [ + "free", + "byo" + ], + "type": "string" +} - added
Input schema / properties / webhookUrlAdded value: +{ + "description": "Webhook URL for async status updates (generation.completed, generation.failed, generation.awaiting_input)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "companyName", - "jobTitle", - "jobDescription" -]New value: +[ + "companyName", + "jobTitle", + "jobDescription", + "companyWebsite" +]
- Removed
master-resume-create - Changed
master-resume-delete3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / idRemoved value: -{ - "description": "Master resume ID", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "id" -]
- Changed
master-resume-get3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / idRemoved value: -{ - "description": "Master resume ID", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "id" -]
- Removed
master-resume-list - Removed
master-resume-update - Added
master-resume-upsert - Added
privacy-grant-consent - Added
privacy-list-consents - Added
privacy-revoke-consent - Added
referral-code - Added
referral-stats - Added
referral-vanity-code - Changed
resume-export-rx1 field changed- added
Input schema / properties / designBlobAdded value: +{ + "additionalProperties": {}, + "description": "Optional design/styling configuration", + "type": "object" +}
- Added
resume-parse - Changed
resume-preview2 fields changed- changed
Input schema / properties / theme / descriptionPrevious value: -"Theme name"New value: +"Theme name (e.g. even, stackoverflow, class, professional)" - changed
Input schema / requiredPrevious value: -[ - "resume" -]New value: +[ + "resume", + "theme" +]
- Changed
resume-render4 fields changed- changed
Input schema / properties / format / descriptionPrevious value: -"Output format"New value: +"Output format: pdf (default) or html" - added
Input schema / properties / format / enumAdded value: +[ + "pdf", + "html" +] - changed
Input schema / properties / theme / descriptionPrevious value: -"Theme name (e.g. Even, StackOverflow, Class, Professional)"New value: +"Theme name (e.g. even, stackoverflow, class, professional, elegant, macchiato, react, academic)" - changed
Input schema / requiredPrevious value: -[ - "resume" -]New value: +[ + "resume", + "theme" +]
- Changed
session-create2 fields changed- changed
Input schema / properties / metadata / descriptionPrevious value: -"Optional session metadata (e.g. agentType, source)"New value: +"Optional session metadata" - added
Input schema / properties / sessionIdAdded value: +{ + "description": "Optional client-generated session ID", + "type": "string" +}
- Added
session-download - Added
session-init - Changed
session-list6 fields changed- removed
Input schema / properties / agentTypeRemoved value: -{ - "description": "Filter by agent type", - "type": "string" -} - added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (ISO 8601 datetime string)", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Number of sessions per page"New value: +"Number of sessions per page (1-50)" - added
Input schema / properties / limit / maximumAdded value: +50 - added
Input schema / properties / limit / minimumAdded value: +1 - removed
Input schema / properties / pageRemoved value: -{ - "description": "Page number for pagination", - "type": "number" -}
- Added
session-log - Added
session-stats - Changed
settings-preferences-get2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / agentTypeAdded value: +{ + "description": "Filter preferences by agent type (e.g. job-hunter, b2b-sales)", + "type": "string" +}
- Changed
settings-preferences-update1 field changed- added
Input schema / properties / agentTypeAdded value: +{ + "description": "Agent type to scope preferences to (e.g. job-hunter, b2b-sales)", + "type": "string" +}
- Added
settings-supported-providers - Changed
settings-usage-logs2 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Number of entries to return"New value: +"Number of entries to return (max 100)" - added
Input schema / properties / limit / maximumAdded value: +100
- Added
share-slug-stats - Changed
upload-job-file2 fields changed- changed
Input schema / properties / fileBase64 / descriptionPrevious value: -"Base64-encoded file content (PDF, DOCX, etc.)"New value: +"Base64-encoded file content (PDF, DOCX, etc.) — max ~10 MB" - added
Input schema / properties / fileBase64 / maxLengthAdded value: +13981014
- Changed
upload-job-text5 fields changed- changed
Input schema / properties / source / descriptionPrevious value: -"Source URL or identifier for the job posting"New value: +"Source label/identifier for the job posting" - changed
Input schema / properties / text / descriptionPrevious value: -"Job description text"New value: +"Job description text (max 50K characters). Required if url is not provided." - added
Input schema / properties / text / maxLengthAdded value: +50000 - added
Input schema / properties / urlAdded value: +{ + "description": "URL to fetch job description from. Required if text is not provided.", + "format": "uri", + "maxLength": 2048, + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "text" -]
- Changed
upload-resume2 fields changed- changed
Input schema / properties / fileBase64 / descriptionPrevious value: -"Base64-encoded file content (PDF, DOCX, etc.)"New value: +"Base64-encoded file content (PDF, DOCX, etc.) — max ~10 MB" - added
Input schema / properties / fileBase64 / maxLengthAdded value: +13981014
- Added
webhook-secret-get - Added
webhook-secret-rotate
39 tool updates
v0.1.0- First observed
agent-manifest - First observed
agent-status - First observed
api-key-create - First observed
api-key-list - First observed
api-key-revoke - First observed
api-key-rotate - First observed
ats-score - First observed
b2b-sales-run - First observed
content-delete-generation - First observed
content-save - First observed
document-download - First observed
job-hunter-run - First observed
master-resume-create - First observed
master-resume-delete - First observed
master-resume-get - First observed
master-resume-list - First observed
master-resume-update - First observed
resume-export-rx - First observed
resume-import-rx - First observed
resume-preview - First observed
resume-render - First observed
resume-themes - First observed
resume-validate - First observed
session-create - First observed
session-delete - First observed
session-get - First observed
session-hydrate - First observed
session-list - First observed
settings-preferences-get - First observed
settings-preferences-update - First observed
settings-profile - First observed
settings-usage-logs - First observed
settings-usage-summary - First observed
share-create - First observed
share-get-public - First observed
share-stats - First observed
upload-job-file - First observed
upload-job-text - First observed
upload-resume
TDQS
Scored across 64 tools
Most tools have distinct purposes, but there is notable overlap in some areas. For example, health-check, health-live, health-ready, and health-root all serve health diagnostics with subtle distinctions that could confuse an agent. Similarly, session-get and session-hydrate both retrieve session data with different detail levels, which might lead to misselection if not carefully read.
Tool names generally follow a consistent verb_noun pattern (e.g., agent-status, api-key-create, resume-parse), with clear and predictable naming. Minor deviations exist, such as ats-score (noun_verb) and byo-key-get (abbreviation-based), but overall the naming is coherent and easy to understand.
With 64 tools, the count is excessive for a single server, making it overwhelming and difficult for an agent to navigate efficiently. While the domain (AI-powered job and sales automation) is broad, the toolset feels bloated with many specialized or overlapping tools that could have been consolidated.
The tool surface is highly comprehensive, covering CRUD operations for sessions, resumes, API keys, and more, with clear workflows for job hunting and B2B sales. Minor gaps exist, such as no direct tool for updating a session's metadata, but agents can work around these with existing tools like session-log or content-save.
Maintenance
Related MCP Connectors
LinkedIn outreach MCP server — 19 tools for AI agents to prospect, sequence, and manage contacts.
Generate tailored, ATS-optimized resume PDFs and cover letters from a job description, over MCP.
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Related MCP Servers
AlicenseBqualityBmaintenanceHosted MCP server for job search (3M+ jobs from employer career pages and ATS feeds like Lever/Greenhouse), PDF resume generation with multiple templates, AI resume tailoring per job description, cover letters, and career advice. Free hosted endpoint, no API key required.3315MIT- AlicenseBqualityAmaintenanceLocal MCP server for BOSS Zhipin workflows. Exposes 49 tools for job search, welfare filtering, recruiter messaging, pipeline tracking, and resume optimization for AI agents.73306 PyPI1,947MIT
- AlicenseBqualityDmaintenanceDeterministic MCP server for job-landing pipeline that parses CVs into validated JSON Resume, detects sections, scores parse confidence, and exposes FR/US market profiles to help beat ATS and LLM screeners honestly.75MIT
- AlicenseNot gradedqualityAmaintenanceA production-grade FastAPI-based MCP server for career-oriented tools, currently exposing GitHub integration (profile, repos, pinned, search, rate limits) to LLM clients via the Model Context Protocol.MIT