For developers, tech leads and Salesforce admins deciding how their team connects AI assistants to their systems. Admins who do not work in a terminal can start with the terms below and the section "For Salesforce admins" near the end.
TL;DR
- Three ways to connect an AI assistant to a system: let it run CLI commands, give it an MCP server, or give it a purpose-built tool that does the domain work. In my Salesforce benchmark the purpose-built route cost 35 to 41% less and used 57 to 68% fewer output tokens than the CLI or a general MCP server.
- The hidden cost of MCP is the tool list. A broad MCP server can cost tens of thousands of tokens per turn before any work starts. Every major tool now has a way to load tools on demand instead.
- Skills and agents solve different problems. A skill is a package of instructions and scripts that loads only when needed. An agent (or subagent) is a separate worker with its own context window that hands back a summary. Agents can use skills, and in Claude Code a skill can run inside a subagent.
- The four tools are converging. Claude Code, GitHub Copilot, Copilot Studio and Agentforce Vibes all support MCP and the Agent Skills open standard. They differ on where the work runs, terminal access, approvals and billing.
- Salesforce teams: the local Salesforce DX MCP server (
@salesforce/mcp) reaches end of life on 2 November 2026, and Salesforce says its tooling is now delivered as skills.
What You'll Learn
- When to use CLI commands, an MCP server or a purpose-built tool, and what each costs in tokens
- What skills, agents and subagents are, and how they relate to MCP
- Whether agents can use skills in each tool
- How Claude Code, GitHub Copilot, Microsoft Copilot Studio and Agentforce Vibes differ and where they align
The Problem
Every AI coding and business assistant now offers several ways to reach your systems and several ways to package know-how: shell commands, MCP servers, connectors, skills, custom agents, subagents, instructions files. Each vendor uses the words slightly differently. Copilot Studio even uses "skills" for two unrelated things.
The choice matters because it decides cost, accuracy and what a smaller, cheaper model can handle. With GitHub Copilot moving to token-based billing on 1 June 2026, and Copilot Studio and Agentforce Vibes billing usage too, efficiency now shows up directly on the bill.
Common Questions This Article Answers:
- Should I let my AI assistant use the CLI, or connect it through MCP?
- What is the difference between a skill and an agent, and can an agent use a skill?
- If I build skills for Claude Code, will they work in Copilot or Agentforce Vibes?
Quick Answer
Use a purpose-built tool for questions you ask repeatedly in one domain: it is the cheapest and works with smaller models. Use the CLI for developer work when you are in a terminal with a strong model. Use an MCP server to connect systems the assistant has no other way to reach, and enable only the tools you need. Package repeatable procedures as skills, because they cost almost nothing until used. Use agents or subagents when a task needs a lot of reading or can run in parallel, so the detail stays out of your main conversation. Skills follow an open standard, so a well-written skill works across Claude Code, GitHub Copilot, Copilot Studio and Agentforce Vibes with little or no change.
A few words you will see
| Term | What it means here |
|---|---|
| CLI | Command-line interface: typing commands such as sf org list into a terminal instead of clicking through Setup |
| MCP | Model Context Protocol: a standard way to plug an AI assistant into a system (like an org) so it can call that system's tools |
| Token | The unit AI models count and charge for, roughly three quarters of a word. More tokens means more cost and slower answers |
| Context window | Everything the model can see at once: your question, its instructions, tool descriptions and results. When it fills up, quality drops |
| Skill | A folder of written instructions (and optional scripts) the assistant loads only when the task needs it |
| Agent / subagent | A separate AI worker the assistant hands a task to. It works in its own context and reports back a summary |
| Haiku, Sonnet, Opus | Claude models, smallest and cheapest to largest and most capable |
Part 1: CLI vs MCP vs Purpose-Built Tools
The three routes
| Route | What the AI gets | Who does the domain work |
|---|---|---|
| CLI commands | A shell allowed to run commands such as sf data query or gh pr list |
The model: it plans commands and reads raw output |
| General MCP server | A set of typed tools, often thin wrappers over an API (run a query, list orgs, deploy) | Mostly the model: the tools are general |
| Purpose-built tool | A few tools that each answer a real question ("what expires in the next 90 days?") | The tool: it returns a finished answer |
A purpose-built tool can be delivered over MCP. The difference is the design of the tool, not the protocol.
What the measurements show
I measured all three routes on the same three Salesforce admin questions in Claude Code, on Haiku, Sonnet and Opus (full method and confounds). Disclosure: the purpose-built tool in that test, OrgPulse, is our product.
Each route answered the three questions on each of the three models: nine runs per route. The figures are totals for those nine runs.
| Purpose-built (OrgPulse) | General MCP (DX MCP Server) | CLI | |
|---|---|---|---|
| Total cost, 9 runs | $1.10 | $1.70 | $1.87 |
| Output tokens, 9 runs | 13,870 | 32,097 | 43,520 |
| Correct answers | 9 of 9 | 6 of 9 | 6 of 9 |
Total API-equivalent cost, nine runs per route
Each route answered the same three questions on three models. OrgPulse is our product; the method and confounds are in the benchmark post.
Show as a table
| Route | Total cost, 9 runs |
|---|---|
| OrgPulse (purpose-built tool) | $1.10 |
| DX MCP Server (general MCP) | $1.70 |
| sf CLI (shell commands) | $1.87 |
Source: Software Insights token cost benchmark, 27 runs, October 2026
Every miss was on Haiku. With the purpose-built tool, Haiku only had to read a clear result. With raw query tools, it had to know Salesforce well enough to plan the queries, and it guessed.
The tool list is the hidden cost of MCP
An MCP server sends its tool definitions to the model, and a big tool list is paid for before any work starts. In the same benchmark, a narrow MCP setup cost about 2,000 tokens per turn; the DX MCP Server with every toolset enabled cost about 27,000. Salesforce's own README for that server warns that its 60-plus tools "can overwhelm the LLM context."
Approximate tokens per turn for tool names, descriptions and input schemas
Every connected MCP server sends its tool definitions to the model. Assistants with tool search or dynamic tools avoid paying this on every turn.
Show as a table
| Server | Tokens per turn |
|---|---|
| OrgPulse (9 tools) | ~2,000 |
| DX MCP Server (orgs, data, users: 5 tools) | ~2,100 |
| DX MCP Server (all toolsets: 74 tools) | ~27,000 |
Source: Software Insights token cost benchmark, October 2026
Anthropic's engineering team reported a more extreme case: presenting MCP tools to the agent as code it could explore on demand cut a Google Drive to Salesforce workflow from 150,000 tokens to 2,000.
Each tool now has its own answer to this:
| Tool | How it limits tool-list cost |
|---|---|
| Claude Code | Tool search, on by default: tool definitions load only when needed |
| GitHub Copilot (VS Code) | A maximum of 128 tools per chat request; experimental "virtual tools" group tools until the model needs them |
| Salesforce DX MCP Server | Narrow --toolsets; an experimental --dynamic-tools flag that starts with core tools and loads others as needed |
| Agentforce Vibes | "Abilities" that select relevant MCP tools automatically |
Pros and cons
| Route | Pros | Cons | Best for |
|---|---|---|---|
| CLI | No setup; full power; the model sees exactly what you would | Needs a strong model; raw output is token-heavy; needs command allowlists to stay safe | Developers already in a terminal |
| General MCP | Typed tools; works in chat apps without a shell; admins can govern it | Big tool lists cost context every turn; still pushes domain work onto the model | Connecting systems with no other route |
| Purpose-built tool | Cheapest per answer; reliable on small models; can run with least-privilege access | Only covers the questions it was built for; someone has to build and maintain it | Questions asked repeatedly in one domain |
Part 2: Skills vs Agents
These two get confused because both "add capability" to an assistant. They do different jobs, and so does MCP:
| What it is | What it costs in context | Use it for | |
|---|---|---|---|
| MCP server | A connection to a system, exposed as tools | Tool definitions, unless loaded on demand | Reaching data and actions |
| Skill | A folder with a SKILL.md file of instructions, plus optional scripts and reference files |
About 100 tokens for the name and description until used; the rest loads on demand, and scripts contribute only their output | Repeatable procedures and know-how |
| Agent / subagent | A separate worker with its own context window, its own instructions and tool limits | Its work happens in its own context; only a summary comes back | Big reads, parallel work, specialist roles |
In short: MCP reaches systems, skills carry procedures, and agents take on work in a separate context. In Salesforce terms:
- MCP: the assistant can read your org's users, permission sets and limits.
- Skill: your team's permission set naming and review checklist, applied whenever someone asks for a new permission set.
- Agent: "go through all 300 profiles, find the ones that grant Modify All Data, and report back", done in its own context so the main conversation only sees the findings.
Can agents use skills?
Yes, in the tools that document both:
- Claude Code: a subagent's definition has a
skillsfield that preloads named skills into it. Subagents do not inherit the main session's skills automatically, so you choose what each one gets. It also works the other way: a skill withcontext: forkruns inside its own subagent. - GitHub Copilot: skills work across the Copilot cloud agent, code review, Copilot CLI and agent mode in VS Code and JetBrains, and custom agents can use MCP tools and run as subagents with handoffs. The documentation I checked does not say whether a custom agent can be limited to specific skills.
- Copilot Studio: agents built on the new GitHub Copilot harness have skills (up to 100 per agent), tools including MCP servers, and connected agents.
- Agentforce Vibes: skills load on demand and MCP tools are selected automatically, and Plan Mode lets you approve a plan before anything changes. Its listing and changelog do not document user-defined agents or subagents.
Who triggers a skill
In Claude Code, Claude can invoke a skill automatically when its description matches the task, or you can run it as /skill-name. Either can be switched off per skill: disable-model-invocation keeps a skill for manual use (useful for anything with side effects), and user-invocable: false makes it background knowledge only Claude uses. Custom slash commands have been merged into skills.
Plugins bundle all three
A Claude Code plugin can package skills, subagents, hooks and MCP servers together and install them as one unit. That is the practical way to share a team's whole setup.
What does the assistant need?
Five ways to extend an assistant
Start with what you need the assistant to do. The panel gives the option to reach for and how to keep it cheap and safe.
Part 3: How Claude Code, Copilot and Agentforce Vibes Compare
| Claude Code | GitHub Copilot | Copilot Studio (M365) | Agentforce Vibes | |
|---|---|---|---|---|
| Who it is for | Developers | Developers | Makers and business users | Salesforce developers |
| Where it runs | Terminal, IDEs, desktop, web | VS Code and JetBrains agent mode, a cloud agent that opens pull requests, Copilot CLI | Cloud; a sandbox on the GitHub Copilot harness | VS Code extension, Code Builder, a web IDE |
| MCP | Yes, with tool search | Yes on all surfaces; the cloud agent supports MCP tools only and uses them without asking | Yes, standard harness and (in preview) the GitHub Copilot harness; concurrent server cap | Salesforce-hosted servers enabled in Setup, built-in DX MCP, custom .mcp.json |
| Skills | Yes, with progressive disclosure | Yes, from .github/skills, .claude/skills or .agents/skills |
Yes on the GitHub Copilot harness (preview in Agent Builder) | Yes, in .vibes/skills, discovered on demand |
| Agents | Subagents, built-in and custom | Custom agents, subagents, handoffs, cloud agent | Connected and child agents | Agentic chat with Plan Mode; no documented custom agents |
| Terminal / CLI | Yes, with permission rules | Yes, with approvals or allow flags | No terminal | Yes, with an allowlist and three permission modes |
| Instruction files | CLAUDE.md |
copilot-instructions.md, *.instructions.md, AGENTS.md, CLAUDE.md |
Agent instructions (up to 8,000 characters) | .vibes/rules, AGENTS.md |
Where they align
- MCP is universal. All four can connect to MCP servers, so one well-designed server serves every assistant your team uses.
- Skills are portable. Anthropic published Agent Skills as an open standard in December 2025. GitHub Copilot, Copilot Studio's GitHub Copilot harness and Agentforce Vibes all use it, as do OpenAI Codex, Cursor and Gemini CLI. Copilot even reads skills from
.claude/skills. - Everyone loads on demand now. Skills load their full content only when used, and each tool has a way to avoid sending every MCP tool definition every turn.
- Instruction files are shared. Copilot and Vibes both read
AGENTS.md, and Copilot readsCLAUDE.mdas well.
Where they differ
- Where work runs. Claude Code and Copilot CLI run on your machine; the Copilot cloud agent and Copilot Studio run in the vendor's cloud. That changes what credentials the agent can reach and what it can break.
- Approvals. The Copilot cloud agent uses its MCP tools "autonomously, and will not ask for your approval." Claude Code, Copilot CLI and Vibes ask by default, with allowlists and modes to reduce prompts. Know which mode each surface is in before connecting a server that can write.
- Terminal access. Copilot Studio has none; the other three can run commands.
- Audience. Copilot Studio's Agent Builder lets business users build agents from SharePoint and connectors, but it cannot author actions that call external services; those agents have to move to Copilot Studio.
- Billing. GitHub Copilot moved from premium requests to token-based AI Credits on 1 June 2026 (annual Pro plans keep premium requests until they expire). Under the old model tool calls did not count; under credits, long agent sessions cost more. Copilot Studio bills Copilot Credits, and Agentforce Vibes bills usage to the org.
- "Skills" means two things in Copilot Studio. On the GitHub Copilot harness it means Agent Skills. On the standard harness it means Azure Bot Service skills, an unrelated feature.
For Salesforce Admins
You do not need a terminal for most of this.
- No-terminal options: Agentforce Vibes is included in Salesforce orgs and has Plan Mode, so you approve a plan before anything changes. Copilot Studio, Microsoft's agent builder, connects to MCP servers without any command line. Ask your Salesforce account team what Vibes usage your org includes; I could not find published limits.
- Start in a sandbox. Connect any assistant or MCP server to a sandbox first, never straight to production.
- Never give an agent write access to production. Use a read-only integration user where you can. Remember that the Copilot cloud agent uses its MCP tools without asking for approval.
- Write your checklists as skills. A skill is just a folder with a written instruction file. Your team's naming conventions, a permission set review checklist or a release runbook make good first skills, and they work across Claude Code, Copilot and Vibes.
Does the DX MCP end of life affect me?
- Find out whether you use it. In VS Code, look for
@salesforce/mcpin.vscode/mcp.jsonor.mcp.jsonin your project. In Claude Code, runclaude mcp list. If none of this sounds familiar, ask whoever set up your AI tools. - If you do:
npx skills add forcedotcom/sf-skillsinstalls Salesforce's skills into a project. It needs Node.js installed. - If you only use Agentforce Vibes: Vibes ships its own built-in DX MCP server. Salesforce's end-of-life notice does not say whether that is affected, and I found no official statement either way. Check the Vibes release notes before 2 November.
For Salesforce Teams: The DX MCP Server Is Going Away
The local Salesforce DX MCP server, @salesforce/mcp, reaches end of life on 2 November 2026, according to its README. In the project's issue tracker, a Salesforce maintainer wrote on 5 October 2026: "Salesforce tooling is now delivered as skills," pointing to forcedotcom/sf-skills. Those skills follow the Agent Skills specification, are built for Agentforce Vibes, and can be added to Claude Code, Cursor, Codex and other tools with npx skills add forcedotcom/sf-skills.
Here a vendor is moving its own developer tooling from a large MCP tool list to on-demand skills. If your team's Claude Code or Copilot setup relies on @salesforce/mcp, plan the move before November.
Whatever you use, govern what can reach your orgs: which MCP servers are allowed (third-party MCP server governance), and how the assistant handles untrusted content it reads (prompt injection hardening).
Frequently Asked Questions
Q: Is MCP being replaced by skills?
A: No. MCP is still how an assistant reaches a system it cannot reach otherwise, and all four tools support it. What is changing is how much of the know-how sits in tool definitions. Skills carry procedures cheaply, tools load on demand, and Salesforce's own developer tooling is moving from a local MCP server to skills.
Q: Can an agent use a skill?
A: Yes. In Claude Code you list the skills in the subagent's skills field; subagents do not inherit the main session's skills on their own. Copilot Studio agents on the GitHub Copilot harness have skills directly. GitHub Copilot supports both skills and custom agents across its surfaces, though its documentation does not say whether a custom agent can be limited to specific skills.
Q: Will a skill I write for Claude Code work in Copilot or Agentforce Vibes?
A: Usually, because all three use the Agent Skills format. GitHub Copilot reads skills from .claude/skills, and Vibes uses .vibes/skills. Test it, though: a skill that names tools or commands specific to one assistant will need those parts adjusted.
Q: Which route is cheapest?
A: For repeated questions in one domain, a purpose-built tool: in my benchmark it cost 35 to 41% less than a general MCP server or the CLI. For open-ended developer work, the CLI or a narrow MCP setup on a strong model. The most expensive setup is a broad MCP server with every tool enabled and no on-demand loading.
Key Takeaways
- The tool's design mattered more than the protocol. A purpose-built tool over MCP beat both a general MCP server and the CLI on cost and accuracy.
- Watch the tool list. Enable only the MCP tools you need, or use each assistant's on-demand loading.
- MCP reaches systems, skills carry procedures, agents work in a separate context. Use each for its own job, and give agents the skills they need explicitly.
- The ecosystem is converging on MCP and Agent Skills. Invest in skills and narrow servers once, and they work across Claude Code, Copilot and Agentforce Vibes.
What's Next?
Recommended Reading:
- Salesforce in Claude: Token Cost of OrgPulse vs DX MCP vs the sf CLI, the benchmark behind Part 1
- Third-party MCP server governance for Salesforce, deciding which servers can reach your orgs
- Post-ForcedLeak: Hardening Agentforce Against Prompt Injection, the agent as an attack surface
Action Items:
- List the MCP servers each assistant on your team connects to, and switch off the toolsets nobody uses.
- Turn one procedure your team repeats into a skill, and try it in two different assistants.
- If you use
@salesforce/mcp, plan the move tosf-skillsbefore 2 November 2026.
Resources & References
- Claude Code: Skills
- Claude Code: Subagents
- Claude Code: Plugins
- Anthropic: Introducing Agent Skills, and the open standard update
- Agent Skills specification
- Anthropic Engineering: Code execution with MCP
- GitHub Docs: About Agent Skills
- GitHub Docs: About custom agents
- GitHub Docs: Extend the coding agent with MCP
- VS Code: Tools in agent mode
- GitHub Changelog: Copilot is moving to usage-based billing
- Microsoft Learn: Copilot Studio harnesses
- Microsoft Learn: Copilot Studio skills
- Microsoft Learn: Agent Builder
- Agentforce Vibes on the VS Code Marketplace
- Salesforce DX MCP Server (end-of-life notice)
- forcedotcom/sf-skills
Responses
Checking your session.
Loading responses.