A side-by-side look at the Free Agent Tools and Salesforce Metadata MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Free Agent Tools for developer tools work; choose Salesforce Metadata MCP for developer tools as a local process. You can also run both side by side in one mcpServers block.
score_business_idea_moat, roast_pitch, price_headroom_check.SF_INSTANCE_URL, SF_ACCESS_TOKEN.sf_create_custom_object, sf_create_custom_field, sf_add_picklist_values.Rows where the two servers differ are marked.
| Spec | F Free Agent Tools | |
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 53/100 · Good | 63/100 · Good |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | SF_INSTANCE_URLSF_ACCESS_TOKEN |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 2 |
| Directory activity | 0 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 22 | 20 |
| Full listing | View Free Agent Tools | View Salesforce Metadata MCP |
score_business_idea_moatScore a business idea on Margin, Operations, Advantage, and TAM (1-10 each). 30+ = FUND IT, 20-29 = FIX IT, under 20 = FLEE IT. Returns the weakest factor, how to fix it, and red flags from pain / money / willingness-to-suffer checks. Educational rule of thumb, not financial advice.roast_pitchPaste a startup pitch (one to five sentences). Five fictional judges (Seed VC, Skeptical Customer, CTO, Your Competitor, Growth Lead) score it 1-10 with a short roast line each, then it returns a verdict (FUND IT / SHARPEN IT / REWRITE IT / ROASTED / BURNT TO A CRISP), the one change worth the most points, detected issues and strengths, and a share URL with an OG image. Deterministic, transparent rubric (specific customer, pain, numbers, traction, wedge, distribution, buzzwords, 'X for Y', blockchain), not an AI opinion. For fun and practice, not investment advice.price_headroom_checkIs the business underpriced? Uses sales close rate (80%+ = way underpriced, ~30% = about right, under 25% = sales problem) to suggest a price range, and computes the profit multiple of a price rise after losing some customers, plus the break-even customer loss.thirty_day_cash_checkCompares cash collected in a new customer's first 30 days with acquisition cost plus 30-day cost to serve. 2x+ = SELF-FUNDING, 1-2x = BREAK-EVEN, under 1x = CASH-HUNGRY. Returns the gap to 2x and tips.email_list_reactivation_valueEstimates buyers and revenue from one offer to past customers in low / mid / high scenarios, with an optional partner revenue share.hotel_ota_commission_calculatorFor hotels, ryokan, guesthouses, and B&Bs: yearly room revenue, commission paid to OTAs (Booking.com, Expedia, Agoda...), commission as a share of revenue (HIGH / MED / LOW), and net savings from moving a share of OTA bookings to direct. Any currency.saas_self_host_savingsGive monthly spend per paid tool (ids: mixpanel, semrush, freshbooks, calendly, chargebee, typeform, pipedrive, gohighlevel, intercom). Returns the open-source swap for each (repo, license, caveat), yearly savings after hosting, setup hours and cost, break-even months, and a SWITCH / MAYBE / KEEP verdict.list_open_source_saas_alternativesLists every covered paid tool (Mixpanel, Semrush, FreshBooks, Calendly, Chargebee, Typeform, Pipedrive/HubSpot, GoHighLevel, Intercom/Zendesk) with its open-source swap, GitHub repo, license, setup effort, and main catch.ads_policy_notice_risk_checkPaste the text of a Google Ads, AdSense, Merchant Center, or Meta (Facebook/Instagram) ads suspension, disapproval, or policy notice. Returns HIGH / MED / LOW risk, the platform, the policy phrases found with plain-language explanations, and a next-step checklist. Heuristic only; never suggests replacement accounts or files appeals.app_store_wrapper_precheckFor Capacitor, WebView, PWA-shell, React Native, or AI-generated iOS apps: scores rejection risk under Guideline 4.2 (minimum functionality / web wrapper), 4.3 (spam / clone), and metadata, with reasons and how native each feature reads. Not legal advice; Apple decides.faceless_youtube_reality_checkSeven multiple-choice answers about a faceless or AI YouTube channel plan. Returns HIGH / MED / LOW expectation and monetization-policy risk with signals and myths to drop. Pushes back on viral '$10k/month with AI YouTube' claims. Not a ban prediction.ai_infrastructure_bottlenecksExplains the physical constraints on the AI buildout beyond chips: compute, memory (HBM), optics, power, space (sites, backhaul), and servers (racks, cooling). Omit slug for all six. Includes example public companies often cited in discussion; these are not investment picks.sf_create_custom_objectCreates a new Salesforce Custom Object using the Metadata API. The object name must end with '__c'. Use this when a user asks to create a new object, entity, or table in Salesforce.sf_create_custom_fieldCreates a new custom field on an existing Salesforce object. The field API name must end with '__c'. Supports all field types: Text, Number, Picklist, Lookup, etc.sf_add_picklist_valuesAdds new picklist values to an existing Picklist or MultiselectPicklist field without removing existing values. Use when a user wants to add new options to a dropdown.sf_create_approval_processCreates or updates a Salesforce Approval Process via the Metadata API. Define who can submit, approval steps with approvers, entry criteria, and what happens on approval or rejection.sf_create_validation_ruleCreates or updates a Salesforce Validation Rule on any object via the Metadata API. The errorConditionFormula returns TRUE when data is INVALID. Use for data quality enforcement.sf_create_workflow_field_updateCreates a Workflow Field Update action that can be referenced by Approval Processes, Workflow Rules, or Flows. Sets a field to a literal value, formula result, or null.sf_create_formula_fieldCreates a formula field on any Salesforce object. Supports all return types (Text, Number, Currency, Date, DateTime, Checkbox, Percent) and the full Salesforce formula language: IF/AND/OR/NOT, BLANKVALUE, TEXT, VALUE, DATE, DATEVALUE, TODAY, NOW, date functions (MONTH/YEAR/DAY), math (FLOOR/CEILING/MOD), string functions (LEN/LEFT/RIGHT/MID/TRIM/UPPER/LOWER/CONTAINS/BEGINS), record type and picklist functions (ISPICKVAL, ISNULL, ISBLANK), cross-object field references (e.g. Account.Owner.Name), and VLOOKUP. Complex multi-line formulas are fully supported.sf_deploy_metadataDeploys a set of metadata components directly to the org using the Metadata API SOAP deploy operation. Builds a package.xml and deployment zip in memory. Supports validate-only (checkOnly:true) for pre-deployment validation without making changes. Specify runTests to execute test classes during deployment (required for production). Polls until complete or timeout.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
No confirmed install command for Free Agent Tools yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"mcpServers": {
"salesforce-metadata-mcp": {
"command": "npx",
"args": [
"-y",
"salesforce-metadata-mcp"
],
"env": {
"SF_INSTANCE_URL": "YOUR_SF_INSTANCE_URL_HERE",
"SF_ACCESS_TOKEN": "YOUR_SF_ACCESS_TOKEN_HERE"
}
}
}
}
sf_check_deploy_statusChecks the status of an in-progress or recently completed metadata deployment by async job ID. Returns the status (Pending, InProgress, Succeeded, Failed, Canceled), component successes, failures, and test results. Use with the deploy ID returned from sf_deploy_metadata.sf_retrieve_metadataRetrieves metadata components from the org and returns their actual file contents. Use this to read existing configuration before making changes, to back up metadata, or to check what is really deployed rather than what you think is deployed. Waits for the async retrieve to finish and unpacks the resulting zip, returning each file's path and source. Large files are truncated. Accepts 'components' (array), or 'metadataType'+'componentName' as a single-item shortcut, or a raw 'packageXml' document — provide exactly one form.sf_delete_metadataPermanently deletes one or more metadata components of a given type via the Metadata API's deleteMetadata call — works for CustomObject, CustomField, Flow, GenAiFunction, GenAiPlugin, GenAiPlannerBundle, Bot, ApexClass, and most other metadata types. There was previously no way to remove anything created by this MCP server (sf_deploy_metadata only supports adding/updating components, not destructiveChanges) — diagnostic or abandoned metadata had nowhere to go. Deletes each fullName independently: check the response's deleted/errors lists rather than assuming all all-or-nothing. Some types have dependency order requirements (e.g. delete a Bot's GenAiFunction/GenAiPlugin/GenAiPlannerBundle before the Bot itself, delete CustomField before its parent CustomObject) — Salesforce will reject a delete that still has dependents, naming them in the error.sf_query_recordsExecutes a SOQL query against the org and returns matching records. Provide the full SOQL string in the query param. Use for reading data, checking existing records before creating, or verifying changes.
Supports aggregate queries — GROUP BY with COUNT(), SUM(), AVG(), MAX(), MIN(), e.g.:
'SELECT StageName, COUNT(Id), SUM(Amount) FROM Opportunity GROUP BY StageName'
Aggregate results come back as regular records with the aggregate expressions as field keys (e.g. "expr0").
Row cap: 'limit' defaults to 200 and is a ceiling, not a hint. If the SOQL carries its own LIMIT the smaller of the two applies, so a LIMIT in the query can tighten the cap but never raise it. When rows are cut off the response sets truncated: true and reports appliedLimit and limitSource, so a capped result is never mistaken for a complete one.