Skills vs MCP Servers vs Subagents: A Practical Decision Framework
Master the decision framework for Skills, MCP servers, and Subagents. Learn when to use each in AI agent architecture with real cost and latency data.
Table of Contents
- Why This Decision Matters
- The Three-Layer Model: A Quick Primer
- Skills: When to Encode Procedural Logic
- MCP Servers: When to Wrap External Connectivity
- Subagents: When to Spawn Autonomous Decision-Makers
- Cost and Latency Trade-offs
- Real-World Build Patterns from Padiso
- Decision Tree: A Practical Framework
- Common Pitfalls and How to Avoid Them
- Next Steps: Building Your First Agentic System
Why This Decision Matters
You’re building an AI agent. It needs to pull data, make decisions, and act. But how do you architect it? Do you encode a capability as a Skill, wrap it in an MCP server, or spawn a Subagent to handle it autonomously?
The answer isn’t obvious—and getting it wrong costs time, money, and reliability.
We’ve built 50+ agentic AI systems at PADISO. We’ve watched teams encode everything as Skills and hit latency walls. We’ve seen others over-engineer with Subagents and burn through token budgets. We’ve also seen MCP servers deployed in production without proper isolation, creating security debt.
This guide cuts through the confusion. We’ll give you a decision framework grounded in real Padiso builds, complete with cost and latency math. By the end, you’ll know exactly which tool to reach for—and why.
Whether you’re a founder building your first agentic MVP, a CTO modernising legacy automation, or an operator at an enterprise rolling out AI at scale, this framework will save you months of rework.
The Three-Layer Model: A Quick Primer
Before we dive into decision-making, let’s establish the architecture. The MCP, Skills, and Agent Three-Layer Model provides a clean way to think about how these three components fit together.
At the top sits your Agent—the decision-maker. It reasons about goals, evaluates trade-offs, and decides what to do next. The Agent is stateful and long-lived. It owns the conversation loop.
Below that sits the Skills layer. Skills are reusable, deterministic procedural instructions. Think of them as functions your agent can call. A Skill might be “format this CSV for ingestion,” “validate an email address,” or “calculate a discount based on customer tier.” Skills are stateless, fast, and cheap to invoke. They live in memory or are loaded on-demand.
At the bottom sits the MCP (Model Context Protocol) layer. MCPs are bridges to external systems. They handle connectivity, authentication, and protocol translation. An MCP server might connect to your data warehouse, CRM, payment processor, or third-party API. MCPs add latency and cost, but they give you access to live, external state.
The key insight: they’re not alternatives. They’re layers. An Agent uses Skills to reason about data, and MCPs to fetch and mutate that data. A Subagent is a specialized Agent spawned to handle a complex subtask.
Now let’s get specific about when to use each.
Skills: When to Encode Procedural Logic
A Skill is a self-contained, deterministic procedure that an Agent can invoke. It takes input, runs logic, and returns output. No external calls. No long-running operations. No state mutations outside its scope.
What Skills Are Good For
Text transformation and formatting. If you’re normalising customer names, parsing dates, or reformatting JSON, that’s a Skill. It’s fast (sub-10ms), costs almost nothing, and doesn’t depend on external systems.
Validation and rule-checking. Is this email valid? Does this order total exceed the customer’s credit limit? Is this SKU in our allowed product list? These are Skill candidates. They’re synchronous, deterministic, and safe to call in tight loops.
Calculation and aggregation. Compute a shipping cost, calculate tax, sum an invoice line-items, or determine a customer’s loyalty tier. These are perfect Skill use cases. They’re fast, cacheable, and testable.
Domain-specific logic encoding. This is where Padiso teams often get the most value. If your domain has complex rules—e.g., “a Series A startup can access this feature only if they’ve passed SOC 2 compliance and have fewer than 50 employees”—encode that as a Skill. It becomes a reusable, versioned piece of domain knowledge that the Agent can rely on.
Cost and Latency Profile
A well-written Skill runs in 5–50ms. It uses ~100–500 tokens (in context). Since it’s synchronous and doesn’t spawn external calls, you can chain multiple Skills together without latency explosion.
At scale (1000 calls/second), a Skill-heavy agent costs roughly $0.001–0.005 per call (depending on token usage and model). Compare that to an MCP call, which adds 200–500ms of latency and $0.01–0.05 per invocation.
When NOT to Use Skills
Don’t use Skills for:
- Fetching live data. If you need to know the current stock level, customer balance, or weather, that’s an MCP job.
- Mutations with side effects. Creating a user, charging a card, or writing to a database should go through an MCP, not a Skill. You need authentication, audit trails, and rollback semantics.
- Long-running operations. If it takes more than a few seconds, it’s not a Skill.
- External API calls. Skills should be self-contained. If they depend on external systems, wrap those systems in MCPs.
Encoding a Skill: Practical Example
Let’s say you’re building an AI agent for a SaaS product that helps startups prepare for SOC 2 audits (like the Security Audit (SOC 2 / ISO 27001) offering at Padiso). Your Agent needs to determine whether a startup is “audit-ready.”
You could encode this as a Skill:
Skill: AssessAuditReadiness
Input: startup_profile (dict with: employee_count, has_sso, has_mfa, logging_enabled, backup_tested)
Logic:
- If employee_count > 500: return "enterprise_ready"
- If employee_count < 5: return "not_yet_ready"
- If has_sso AND has_mfa AND logging_enabled AND backup_tested: return "seed_ready"
- Otherwise: return "in_progress" with list of missing items
Output: readiness_status (string), gaps (list)
This Skill is:
- Deterministic. Same input, same output every time.
- Fast. Runs in <5ms.
- Testable. You can write unit tests for every path.
- Versionable. As your audit criteria change, you bump the Skill version and the Agent automatically gets the new logic.
- Reusable. Any Agent in your system can call it.
MCP Servers: When to Wrap External Connectivity
An MCP (Model Context Protocol) server is a bridge between your Agent and an external system. It handles authentication, API calls, data transformation, and error handling. The Agent doesn’t know how to connect to Salesforce, PostgreSQL, or Slack—the MCP does.
What MCPs Are Good For
Database queries. Your Agent needs to fetch customer records, product inventory, or transaction history. Wrap your database in an MCP server. The MCP handles connection pooling, query validation, and result formatting.
Third-party API integrations. Salesforce, HubSpot, Stripe, Twilio—any external SaaS platform. An MCP server handles authentication (API keys, OAuth), rate limiting, and response parsing. The Agent just says “fetch this customer’s CRM record” and the MCP makes it happen.
Real-time data and events. If you need live stock prices, weather data, or event streams, MCPs are your tool. They can poll, subscribe, or stream data and present it to the Agent.
Secure mutations. Writing to external systems—creating a ticket, updating a record, charging a card—should go through an MCP. MCPs can enforce access control, validate inputs, and log all mutations for audit trails.
Cost and Latency Profile
An MCP call typically adds 200–500ms of latency (network round-trip + external system processing). Token cost depends on the response size, but expect 500–5000 tokens per call. At scale, a single MCP call costs $0.01–0.10.
If your Agent makes 10 MCP calls to complete a task, you’re looking at 2–5 seconds of latency and $0.10–1.00 in token cost per task. This is why parallel execution and caching matter.
When NOT to Use MCPs
Don’t use MCPs for:
- Deterministic logic. If it’s a calculation or validation, use a Skill.
- Frequently-called operations. If your Agent calls this 100 times per task, you’ll hit latency and cost walls. Cache the data or use a Skill instead.
- Sensitive operations without isolation. If an MCP exposes a dangerous action (delete a user, refund a payment), you need strong isolation and approval workflows. Consider a Subagent instead.
Encoding an MCP: Practical Example
Let’s say you’re building an AI agent that helps engineering teams pass ISO 27001 audits. The Agent needs to query your compliance database to check if a control has been implemented.
You’d wrap your database in an MCP:
MCP Server: ComplianceDB
Endpoints:
- GetControl(control_id: string) → {control_id, title, status, evidence_count, last_verified}
- ListControls(framework: string) → [{control_id, title, status}]
- UpdateControlStatus(control_id: string, status: string, evidence: string) → {success, updated_at}
Authentication: API key (stored in env var)
Rate limit: 100 calls/min
Timeout: 5 seconds
The Agent calls this MCP to fetch control data, but the MCP handles:
- Connection pooling
- Query validation (no SQL injection)
- Authentication
- Error handling (retry logic, circuit breaker)
- Audit logging (who queried what, when)
How Skills compares to prompts, Projects, MCP, and subagents
This reference highlights a crucial distinction: MCPs are for external connectivity, while Skills are for procedural logic. MCPs shine when you need to integrate with live systems. Skills shine when you need to encode domain knowledge.
Subagents: When to Spawn Autonomous Decision-Makers
A Subagent is a specialized Agent spawned by a parent Agent to handle a complex, semi-autonomous subtask. Unlike Skills (which are deterministic) or MCPs (which are connectors), Subagents make decisions.
What Subagents Are Good For
Complex decision trees with multiple paths. If a task has many branches and the Agent needs to reason about which path to take, a Subagent is cleaner than a massive Skill. The Subagent owns the decision logic and reports back.
Delegated authority with guardrails. You want to let an Agent approve a refund, but only up to $1000. You want to let it create a support ticket, but only if the customer has been flagged as high-priority. Spawn a Subagent with narrow scope and constraints.
Parallel task execution. If your Agent needs to fetch data from 5 different sources and aggregate it, spawn 5 Subagents in parallel. Each Subagent owns one data source, and the parent Agent waits for all to complete, then synthesizes the results.
Error recovery and retry logic. If an operation fails, the parent Agent can spawn a Subagent to diagnose and retry. The Subagent has its own reasoning loop and can try alternative approaches.
Long-running workflows. If a task takes minutes (e.g., generating a compliance report), spawn a Subagent to own it. The parent Agent can continue handling other requests while the Subagent runs in the background.
Cost and Latency Profile
Spawning a Subagent is expensive. You’re creating a new reasoning loop, which means new LLM calls, new token usage, and new latency.
A single Subagent invocation costs 2000–10,000 tokens (depending on context size and complexity) and adds 2–10 seconds of latency. If you spawn 5 Subagents in parallel, you’re looking at 10,000–50,000 tokens and 2–10 seconds of wall-clock time (because they run in parallel).
This is why Subagents should be used sparingly. Use them when the task complexity justifies the cost.
When NOT to Use Subagents
Don’t use Subagents for:
- Simple operations. If it can be a Skill or MCP, don’t spawn a Subagent.
- Latency-sensitive tasks. If you need a response in <1 second, Subagents are too slow.
- Cheap operations. If the operation costs <$0.01 and takes <100ms, a Subagent is overkill.
Encoding a Subagent: Practical Example
You’re building an AI system that helps engineering teams modernise their infrastructure with AI & Agents Automation. Your parent Agent receives a request: “Assess our cloud infrastructure for modernisation opportunities.”
This is complex. It requires:
- Querying the cloud provider (AWS/GCP/Azure) for current resources
- Analysing cost patterns
- Checking for deprecated services
- Evaluating security posture
- Synthesising recommendations
Instead of doing all this in the parent Agent, you spawn Subagents:
Parent Agent: InfrastructureAssessment
→ Subagent 1: CloudResourceAnalyzer (queries AWS, lists resources)
→ Subagent 2: CostOptimizer (analyses spend, identifies waste)
→ Subagent 3: SecurityAuditor (checks compliance, finds gaps)
→ Subagent 4: DeprecationChecker (identifies EOL services)
Parent Agent waits for all 4 to complete, then synthesises:
- Top 5 cost-saving opportunities
- Top 3 security improvements
- Migration roadmap
- ROI estimate
Each Subagent is autonomous and can reason independently. The parent Agent orchestrates and synthesises. This parallelisation is key: if done sequentially, this would take 30–60 seconds. In parallel, it takes 10–15 seconds.
Cost and Latency Trade-offs
Let’s ground this in real numbers. Here’s a comparison of the three approaches on a realistic task: “Assess a startup’s readiness for Series A fundraising.”
Approach 1: All Skills
Architecture:
- Skill 1: Fetch startup profile from context (no external call)
- Skill 2: AssessProductMarketFit (logic based on metrics)
- Skill 3: AssessTeamStrength (logic based on roles and experience)
- Skill 4: AssessFinancials (logic based on burn rate, runway)
- Skill 5: SynthesiseReadiness (combine scores into recommendation)
Cost: ~2000 tokens, $0.03 Latency: ~100ms Downside: If you need live data (current burn rate, latest customer count), you can’t fetch it. You’re working with stale context.
Approach 2: Skills + MCPs
Architecture:
- MCP 1: Fetch latest metrics from your data warehouse
- MCP 2: Fetch team data from your HR system
- MCP 3: Fetch financial data from your accounting system
- Skill 1: AssessProductMarketFit (logic based on live data)
- Skill 2: AssessTeamStrength (logic based on live data)
- Skill 3: AssessFinancials (logic based on live data)
- Skill 4: SynthesiseReadiness
Cost: ~3000 tokens (2000 for Skills + 1000 for MCP responses), $0.04–0.08 (MCPs are pricier) Latency: ~800ms (3 MCPs × 200–300ms each, run sequentially) Upside: You’re working with live data. The assessment is current. Downside: Latency is higher. If you need to parallelise the MCPs, you need async orchestration.
Approach 3: Parent Agent + Subagents
Architecture:
- Subagent 1: ProductAnalyzer (fetches metrics, assesses fit)
- Subagent 2: TeamAnalyzer (fetches team data, assesses strength)
- Subagent 3: FinanceAnalyzer (fetches financials, assesses runway)
- Parent Agent: Synthesises results into final recommendation
Cost: ~8000–12,000 tokens (each Subagent uses 2000–4000 tokens), $0.10–0.15 Latency: ~5–8 seconds (Subagents run in parallel, so wall-clock time is ~5 seconds, not 15) Upside: Fully parallelised. Each Subagent can reason independently. Highly resilient to failures (if one Subagent fails, others still complete). Downside: Much more expensive. Much slower. Only worth it if the complexity of each subtask justifies the cost.
The Decision Matrix
| Scenario | Best Approach | Why |
|---|---|---|
| Simple, deterministic task with no external data | Skills only | Fastest, cheapest, simplest |
| Task needs live data from 1–2 sources | Skills + MCPs | Good balance of freshness and cost |
| Task needs live data from 3+ sources, can wait 2–5s | Skills + MCPs (parallelised) | Parallelise MCP calls to reduce latency |
| Task is complex, needs reasoning at each stage | Subagents | Justify the cost with reasoning value |
| Task is complex AND needs low latency | Hybrid: Subagents + Skills + MCPs | Subagents own reasoning, Skills own logic, MCPs own connectivity |
Real-World Build Patterns from Padiso
Let’s look at three real systems we’ve built and how we architected them.
Pattern 1: Compliance Readiness Agent (SOC 2 / ISO 27001)
We built an agent that helps startups assess their readiness for SOC 2 audits. This is the kind of work we do in our Security Audit (SOC 2 / ISO 27001) practice.
Architecture:
- Parent Agent: Orchestrates the assessment
- Skills: 8 domain-specific Skills that encode SOC 2 control logic
- AssessAccessControl (role-based access, principle of least privilege)
- AssessIncidentResponse (incident response plan, drills)
- AssessDataProtection (encryption, key management)
- AssessAuditLogging (comprehensive logging, retention)
- AssessVendorManagement (third-party risk assessment)
- AssessBusinessContinuity (backup, disaster recovery)
- AssessRiskManagement (risk register, mitigation)
- SynthesiseReadiness (combine all assessments)
- MCPs: 2 external connectors
- Vanta API (pulls existing audit data, control status)
- GitHub API (scans for secrets, checks branch protection)
Cost: ~$0.05–0.10 per assessment Latency: ~1.5 seconds (MCP calls dominate; Skills are negligible) Key insight: We encode compliance logic as Skills because it’s deterministic and changes infrequently. We use MCPs to fetch live data (Vanta status, GitHub config) because this changes often and we need current state.
This approach is used across our AI Agency Sydney practice for security-focused startups.
Pattern 2: Workflow Automation Engine (RPA Replacement)
We replaced a legacy RPA system with an agentic AI system for a mid-market SaaS company. The system automates invoice processing.
Architecture:
- Parent Agent: Routes incoming invoices to appropriate handler
- Subagent 1: InvoiceExtractor (uses computer vision, OCR, and document parsing to extract line items)
- Subagent 2: VendorMatcher (matches vendor to CRM record, checks payment terms)
- Subagent 3: ComplianceChecker (validates invoice against PO, checks budget)
- Subagent 4: ApprovalRouter (routes to appropriate approver based on amount and vendor)
- Skills: 5 validation Skills
- ValidateLineItem (check for duplicates, negative amounts)
- CalculateTax (jurisdiction-specific tax logic)
- CheckBudgetAvailable (query finance system)
- FormatForAccounting (transform to GL format)
- MCPs: 3 external connectors
- ERP system (fetch POs, GL codes, approval workflows)
- Email system (send approval requests, reminders)
- Document storage (fetch invoice images, store processed data)
Cost: ~$0.20–0.50 per invoice (Subagents are expensive, but justified by complexity) Latency: ~8–15 seconds per invoice (Subagents run sequentially, not in parallel, because they have dependencies) Key insight: We use Subagents because invoice processing has complex decision trees (vendor matching, compliance checking, approval routing). Each Subagent owns a subtask and can reason independently. Skills handle validation (fast, cheap). MCPs handle external system integration.
This pattern is common in our AI Automation Agency Sydney work with mid-market operators.
Pattern 3: Data Analytics Agent (Self-Service BI)
We built an agent that lets non-technical users query their data warehouse using natural language. This is similar to work we do with Agentic AI + Apache Superset.
Architecture:
- Parent Agent: Interprets natural language query, routes to appropriate handler
- Subagent 1: SchemaExplorer (queries database schema, understands table relationships)
- Subagent 2: QueryBuilder (translates natural language to SQL)
- Subagent 3: ResultInterpreter (executes query, formats results, generates insights)
- Skills: 3 SQL validation Skills
- ValidateSQL (check for injection, ensure read-only)
- OptimiseQuery (suggest indexes, rewrite for performance)
- FormatResults (pivot, aggregate, format for display)
- MCPs: 1 external connector
- Data warehouse (PostgreSQL, BigQuery, Snowflake—whatever the customer uses)
Cost: ~$0.10–0.30 per query (Subagents for schema exploration and query building; Skills for validation) Latency: ~3–8 seconds per query (Subagents run sequentially; query execution dominates latency) Key insight: We use Subagents to handle the reasoning-heavy parts (understanding schema, translating natural language to SQL). Skills validate and optimise. The MCP is minimal—just a connector to the database.
This pattern is part of our broader AI & Agents Automation offering, particularly for teams modernising their analytics stack.
Decision Tree: A Practical Framework
Here’s a flowchart to help you decide:
Start: You need to encode a capability in your Agent
1. Is it deterministic and stateless?
YES → Is it fast (<100ms) and doesn't need external data?
YES → Use a SKILL
NO → Go to 2
NO → Go to 2
2. Does it need to fetch or mutate external state?
YES → Is it a single, simple operation (one API call)?
YES → Use an MCP
NO → Go to 3
NO → Go to 3
3. Is it complex, with multiple decision points or branches?
YES → Does it need to run in parallel with other operations?
YES → Use SUBAGENTS (spawn multiple, run in parallel)
NO → Use a SUBAGENT (single, sequential)
NO → Go back to 1 (you might have missed something)
Let’s walk through some examples:
Example 1: “Validate a customer email address”
- Is it deterministic? Yes.
- Is it fast and self-contained? Yes.
- Decision: Use a Skill.
Example 2: “Fetch the customer’s current account balance”
- Is it deterministic? Yes (for a given customer, at a given moment).
- Does it need external data? Yes.
- Is it a single operation? Yes (one API call to the billing system).
- Decision: Use an MCP.
Example 3: “Process an incoming support ticket and route it to the right team”
- Is it deterministic? No (routing depends on content, priority, team availability).
- Does it need external data? Yes (team availability, ticket history, customer history).
- Is it complex? Yes (multiple decision points: priority assessment, team matching, SLA checking).
- Does it need parallelisation? Possibly (you could fetch team availability and customer history in parallel).
- Decision: Use Subagents. Spawn one Subagent to assess priority, one to fetch team availability, one to fetch customer history. Parent Agent synthesises and routes.
Common Pitfalls and How to Avoid Them
Pitfall 1: Over-Engineering with Subagents
The mistake: Teams see Subagents and think “this is so powerful, let’s use it everywhere.” They spawn Subagents for simple tasks, burning tokens and latency for no reason.
The cost: A task that should take 100ms and cost $0.001 now takes 5 seconds and costs $0.10.
How to avoid it: Ask yourself: “Does this task need reasoning?” If the answer is “no,” use a Skill or MCP. Reserve Subagents for tasks with genuine complexity.
Pitfall 2: Encoding Business Logic in MCPs
The mistake: Teams put validation, calculation, or decision logic inside their MCP servers. The MCP becomes a God object—handling both connectivity and business logic.
The cost: Your MCP becomes slow, hard to test, and tightly coupled to your Agent. When you want to reuse the logic elsewhere, you can’t.
How to avoid it: Keep MCPs thin. They should handle authentication, data fetching, and error handling. Encode business logic as Skills. This keeps concerns separated and logic reusable.
Pitfall 3: Ignoring Latency Cascades
The mistake: You build a chain of MCP calls: fetch customer → fetch order history → fetch shipping status → fetch payment status. Each MCP takes 300ms. Total: 1.2 seconds. But you didn’t account for the fact that you’re making 4 calls sequentially.
The cost: Latency explodes. Your Agent feels slow. Users abandon it.
How to avoid it: Parallelise MCP calls whenever possible. If you’re fetching data from 4 independent sources, spawn 4 Subagents (or use async/await in your MCP orchestration layer) and run them in parallel. This cuts latency from 1.2s to 300ms.
This is especially important in our AI Automation Agency Services work, where latency directly impacts user experience.
Pitfall 4: Not Versioning Skills
The mistake: You encode a Skill, deploy it, and then change the logic. But you don’t version it. Now you have no way to know which Agent is using which version of the Skill.
The cost: Bugs are hard to debug. Rollbacks are dangerous. You can’t A/B test different logic.
How to avoid it: Version your Skills. Use semantic versioning (1.0.0, 1.1.0, 2.0.0). Store Skill code in version control. Make versioning part of your deployment pipeline.
Pitfall 5: Insufficient MCP Isolation
The mistake: You create an MCP that connects to your production database and allows arbitrary queries. An Agent can delete tables, drop users, or exfiltrate data.
The cost: Security debt. Audit failures. Potential breaches.
How to avoid it: Isolate MCPs aggressively.
- Create read-only database users for MCPs that only fetch data.
- Use API keys with narrow scopes (e.g., “can only read customer records, not delete”).
- Implement rate limiting and circuit breakers.
- Log all MCP calls for audit trails.
- Run MCPs in separate containers or services, not in the same process as your Agent.
This is critical for teams pursuing SOC 2 compliance or ISO 27001 compliance. We help teams implement this in our Security Audit practice.
Pitfall 6: Choosing the Wrong Granularity for Subagents
The mistake: You spawn Subagents that are too fine-grained (e.g., one Subagent per API call) or too coarse-grained (one Subagent for an entire workflow). Either way, you get inefficiency.
The cost: Too fine-grained: token explosion, latency explosion. Too coarse-grained: no parallelisation, no fault isolation.
How to avoid it: A Subagent should own a coherent subtask. It should be:
- Independent: It doesn’t depend on the output of other Subagents (or has clear dependencies).
- Meaningful: It does enough work to justify the cost of spawning a new reasoning loop (at least 2–3 API calls or complex decisions).
- Parallelisable: Ideally, you can run it in parallel with other Subagents.
A good heuristic: if you’d hire a human specialist to do this task, it’s probably a good Subagent boundary.
Agentic AI in Practice: Beyond the Framework
The decision framework above is essential, but it’s not the whole story. Agentic AI vs Traditional Automation highlights why this architecture matters: agentic systems are more flexible, more resilient, and more powerful than rule-based automation.
When you’re deciding between Skills, MCPs, and Subagents, you’re not just choosing an implementation detail. You’re choosing how your Agent reasons and acts. The right choice amplifies your Agent’s capabilities. The wrong choice creates bottlenecks.
At PADISO, we’ve seen teams get this right and ship AI products in weeks. We’ve also seen teams get it wrong and spend months reworking their architecture. The difference is often this decision framework.
Best practices for Mastering AI Agents, Subagents, Skills & MCP provides additional guidance on decomposition and intent routing—concepts that reinforce the framework above.
Implementing Your First Agentic System
If you’re building your first agentic AI system, here’s a practical roadmap:
Phase 1: Start with Skills (Weeks 1–2)
Encode your domain logic as Skills. Don’t worry about external data yet. Get comfortable with:
- How to structure a Skill
- How to version it
- How to test it
- How to integrate it into your Agent
At this phase, your Agent is reasoning about static context. It’s not fetching live data, but it’s making decisions based on domain logic.
Phase 2: Add MCPs (Weeks 3–4)
Wrap your first external system (database, API, CRM) in an MCP. Start with read-only operations. Get comfortable with:
- Authentication and credential management
- Error handling and retries
- Rate limiting
- Response parsing
Now your Agent can fetch live data and reason about it. But it’s still making decisions in a single reasoning loop.
Phase 3: Add Subagents (Weeks 5–6)
Identify a task that’s complex enough to justify a Subagent. Spawn one Subagent and measure:
- Cost (token usage)
- Latency (wall-clock time)
- Accuracy (does the Subagent make better decisions?)
If the ROI is positive, add more Subagents. If not, stick with Skills and MCPs.
Phase 4: Optimise and Scale (Weeks 7+)
Parallelise MCP calls. Cache frequently-accessed data. Version your Skills and MCPs. Implement proper isolation and audit logging. Get ready for production.
Throughout this process, measure:
- Cost: Tokens per task, cost per task
- Latency: Time to completion, time per component
- Accuracy: Does the Agent make correct decisions?
- Reliability: How often does it fail? How does it recover?
These metrics guide your architecture decisions.
Advanced Patterns: When to Combine All Three
Once you’ve mastered Skills, MCPs, and Subagents individually, you can combine them for maximum power.
Pattern: Hierarchical Agents with Specialised Subagents
Imagine a top-level Agent that coordinates a complex workflow. It spawns Subagents for different domains (finance, operations, compliance). Each Subagent uses Skills for logic and MCPs for connectivity.
Example: A startup fundraising agent.
- Parent Agent: Coordinates fundraising readiness assessment
- Finance Subagent: Assesses financial health (uses Skills for burn rate calculations, MCPs to fetch accounting data)
- Operations Subagent: Assesses operational maturity (uses Skills for team assessment logic, MCPs to fetch org data)
- Product Subagent: Assesses product-market fit (uses Skills for PMF scoring, MCPs to fetch usage data)
- Compliance Subagent: Assesses legal/compliance readiness (uses Skills for checklist logic, MCPs to fetch doc status)
The parent Agent waits for all Subagents, then synthesises a comprehensive readiness report.
This pattern is powerful because:
- Each Subagent is autonomous and can reason independently
- Skills are reusable across Subagents
- MCPs are centralised (shared by multiple Subagents)
- The parent Agent can parallelise and orchestrate
Pattern: Feedback Loops and Iterative Refinement
Some tasks benefit from multiple passes. The Agent makes a first attempt, evaluates the result, and refines.
Example: Code review agent.
- Pass 1: Subagent reviews code for style and obvious bugs (uses Skills for linting rules, MCPs to fetch code)
- Pass 2: Subagent reviews for architecture and design patterns (uses Skills for design logic, MCPs to fetch codebase context)
- Pass 3: Subagent reviews for security and performance (uses Skills for security rules, MCPs to fetch threat models)
- Synthesis: Parent Agent combines all reviews into a comprehensive report
Each pass is independent and can be parallelised. The Agent can also spawn a Subagent to implement fixes and verify them.
This is the kind of sophisticated automation we build in our AI Automation Agency Services practice.
Building Agentic Systems at Scale
As you scale from 1 agent to 100 agents, new challenges emerge. MCP vs. Skills: Two Ways to Give Your AI Superpowers discusses how to manage this complexity.
Key considerations:
Shared Skills and MCPs: As you deploy more Agents, you want to reuse Skills and MCPs. This means:
- Central skill library (version-controlled, tested)
- Central MCP registry (with authentication and audit logging)
- Standardised interfaces (so any Agent can use any Skill or MCP)
Cost Control: At scale, token costs explode. You need:
- Caching (cache MCP responses, cache Skill outputs)
- Batching (batch multiple operations into one API call)
- Prioritisation (some tasks get priority access to expensive operations)
Reliability: At scale, failures cascade. You need:
- Circuit breakers (stop calling a failing MCP)
- Fallback logic (if MCP fails, use cached data or skip the step)
- Monitoring and alerting (know when things break)
Governance: At scale, you need:
- Access control (who can create Agents? Who can deploy Skills?)
- Audit trails (log all Agent decisions, all Skill invocations, all MCP calls)
- Compliance (ensure MCPs don’t expose sensitive data)
This is where working with an experienced AI agency matters. At PADISO, we’ve built these systems for 50+ clients. We know the pitfalls and how to avoid them. Our AI Agency Methodology Sydney formalises this approach.
Security and Compliance Considerations
When you’re building agentic systems, security can’t be an afterthought. Function Calling - OpenAI Platform Documentation and Computer Use - Anthropic Documentation both emphasise the importance of careful tool design.
Here’s what you need to consider:
Skills Security
Skills are generally safe because they’re self-contained. But:
- Don’t encode secrets in Skills. Use environment variables or a secrets manager.
- Validate inputs. If a Skill accepts parameters, validate them before using them.
- Limit scope. A Skill should only do one thing. Don’t create a “do anything” Skill.
MCP Security
MCPs are the security boundary. They’re where your Agent interacts with external systems. Secure them aggressively:
- Authentication: Use strong API keys or OAuth. Rotate regularly.
- Authorisation: Limit what each MCP can do. A read-only MCP should only read. A write MCP should only write to specific tables.
- Rate limiting: Prevent abuse. If an Agent starts making 1000 calls/second, shut it down.
- Logging: Log every MCP call. Who called it? What did they ask for? What did they get? When?
- Encryption: Encrypt data in transit (TLS) and at rest.
- Isolation: Run MCPs in separate containers or services. Don’t let a compromised MCP access other systems.
Subagent Security
Subagents have the same security boundaries as the parent Agent. But:
- Scope limitation: A Subagent should only have access to MCPs it needs. Don’t give it blanket access.
- Decision constraints: A Subagent should have guardrails. E.g., “can approve refunds up to $1000, not more.”
- Audit logging: Log all Subagent decisions. If a Subagent approves a fraudulent refund, you need to know why.
For teams pursuing SOC 2 or ISO 27001 compliance, this is critical. We help teams implement these controls in our Security Audit (SOC 2 / ISO 27001) practice. The AI Agency Performance Tracking guide also covers monitoring and observability, which is essential for security.
Next Steps: Building Your First Agentic System
You now have a framework for deciding between Skills, MCPs, and Subagents. You understand the cost and latency trade-offs. You’ve seen real patterns from Padiso builds. You know the pitfalls to avoid.
Here’s how to get started:
If You’re a Founder or CEO
You’re probably thinking: “This is complex. Should I build this myself or partner with an agency?”
Consider partnering with an experienced AI agency. At PADISO, we’ve built these systems 50+ times. We know the architecture, the pitfalls, and the optimisations. We can help you:
- Design your agentic system (Skills, MCPs, Subagents)
- Build your MVP in 4–6 weeks
- Scale to production with proper security and monitoring
- Train your team to maintain and extend it
Our Venture Studio & Co-Build service is designed for exactly this: partnering with founders to ship AI products fast.
If You’re a CTO or Engineering Lead
You’re probably thinking: “I can build this myself, but I need help architecting it.”
Start with Skills. Build a library of domain-specific Skills that encode your business logic. Version them, test them, deploy them. This is low-risk and gives you a foundation.
Then add MCPs. Wrap your critical systems (database, CRM, payment processor) in MCPs. Secure them aggressively. Test them under load.
Finally, add Subagents selectively. Use them for complex tasks that justify the cost. Measure the ROI.
Our CTO as a Service offering can help. We provide fractional CTO leadership for exactly this kind of architectural work. We can review your design, help you avoid pitfalls, and guide your team.
If You’re an Operator at a Mid-Market Company
You’re probably thinking: “We have legacy automation (RPA, rule-based systems). Can we modernise with agentic AI?”
Absolutely. Agentic AI is more flexible, more powerful, and often cheaper than legacy automation. But the migration is non-trivial.
Start by auditing your current automation. Identify the most painful, highest-ROI process. Build an agentic AI system to replace it. Measure the improvement (cost reduction, time savings, error reduction).
Then scale to other processes.
Our AI & Agents Automation service is designed for this. We help mid-market companies modernise their automation stack. We’ve replaced RPA systems, rule-based workflows, and custom scripts with agentic AI. The results are usually 30–50% cost reduction and 2–3x faster execution.
We also help with the compliance side. When you’re modernising your automation, you’re often touching systems that are in scope for SOC 2 or ISO 27001. We help you maintain compliance through the transition.
If You’re a Security Lead or Compliance Officer
You’re probably thinking: “Agentic AI sounds powerful, but how do we keep it secure and compliant?”
This is a fair concern. Agentic systems are more autonomous, which means more risk if something goes wrong. But with proper architecture, they’re actually more secure and more auditable than legacy systems.
Key principles:
- Principle of least privilege: Each Skill, MCP, and Subagent should only have access to what it needs.
- Audit trails: Log everything. Every Skill invocation, every MCP call, every Subagent decision.
- Isolation: Run each component in isolation. Don’t let a compromised component access others.
- Testing: Test security properties. Can an Agent exfiltrate data? Can it escalate privileges? Can it bypass controls?
Our Security Audit (SOC 2 / ISO 27001) service includes agentic AI systems. We help you design them to be audit-ready from day one. We also help you pass audits via Vanta implementation.
Conclusion: The Right Tool for the Right Job
Skills, MCPs, and Subagents are not alternatives. They’re layers in a modern agentic architecture. The decision framework in this guide helps you choose the right layer for each capability.
Use Skills for deterministic logic. They’re fast, cheap, and reusable. Encode your domain knowledge as Skills.
Use MCPs for external connectivity. They’re how your Agent interacts with live systems. Secure them aggressively.
Use Subagents for complex reasoning. They’re expensive and slow, but powerful. Use them when the task complexity justifies the cost.
Get the architecture right, and you’ll ship agentic AI products fast. Get it wrong, and you’ll spend months reworking it.
We’ve built this architecture 50+ times. We know what works. If you’re building an agentic system—whether it’s your first MVP or a company-wide modernisation—we can help.
Reach out to PADISO. Let’s build something great together.
Further Reading and Resources
For deeper dives into specific topics:
- AI Agency Services: Explore our AI Automation Agency Services guide for how we help companies modernise their automation.
- Agentic AI Fundamentals: Our Agentic AI vs Traditional Automation article compares agentic systems with legacy approaches.
- Real-World Implementation: See how we integrated agentic AI with BI tools in our Agentic AI + Apache Superset case study.
- Customer Service Automation: Learn about AI automation in AI Automation for Customer Service.
- Sydney AI Agencies: If you’re in Sydney, check out our AI Agency Sydney guide.
- Team Building: Scaling agentic systems requires the right team. Our AI Agency Team Sydney guide covers team composition and hiring.
- AI Strategy: Before you build, get your strategy right. Our AI Agency Growth Strategy covers strategic planning.
- Project Management: Managing agentic AI projects is different from traditional software. Our AI Agency Project Management Sydney guide covers the methodology.
- Performance Tracking: Once you’ve built your system, you need to measure it. Our AI Agency Performance Tracking guide covers observability and metrics.
- ML Integration: For teams integrating AI with existing systems, our AI and ML Integration: CTO Guide covers the technical details.
- Scaling and Growth: As you scale, new challenges emerge. Our AI Agency Scaling Sydney guide covers scaling patterns.
External Resources:
- The MCP, Skills, and Agent Three-Layer Model provides architectural foundations.
- How Skills compares to prompts, Projects, MCP, and subagents offers detailed comparisons.
- MCP vs. Skills: Two Ways to Give Your AI Superpowers explores the practical differences.
- Best practices for Mastering AI Agents, Subagents, Skills & MCP covers operational best practices.
- MCP, Skills, and Agents breaks down the distinctions clearly.
- Function Calling - OpenAI Platform Documentation covers the foundational function-calling concept.
- Computer Use - Anthropic Documentation covers advanced agent capabilities.