MCP

Intent Surfaces

A reference manual for people who design and build MCP (Model Context Protocol) ecosystems

MCP

Intent Surfaces

A reference manual for people who design and build MCP (Model Context Protocol) ecosystems

MCP

Intent Surfaces

A reference manual for people who design and build MCP (Model Context Protocol) ecosystems

The Ecosystem Awakens

The Ecosystem Awakens

The Ecosystem Awakens

Block, Apollo, and the pioneers • When IDEs learned to speak MCP • The domino effect begins

Block, Apollo, and the pioneers • When IDEs learned to speak MCP • The domino effect begins

Block, Apollo, and the pioneers • When IDEs learned to speak MCP • The domino effect begins

December 5, 2024: The First Ripple

December 5, 2024: The First Ripple

Twenty-four hours after Anthropic released MCP, something unprecedented happened in the developer community. Not a viral tweet. Not a hot take. Working code.

Twenty-four hours after Anthropic released MCP, something unprecedented happened in the developer community. Not a viral tweet. Not a hot take. Working code.

That enterprise deployment would change everything.

That enterprise deployment would change everything.

Within one day:

Within one day:

127 GitHub repositories mentioning "modelcontextprotocol"

127 GitHub repositories mentioning "modelcontextprotocol"

14 working MCP server implementations

14 working MCP server implementations

3 IDE integration attempts

3 IDE integration attempts

1 enterprise deployment at Block

1 enterprise deployment at Block

Block's 72-Hour Sprint

Block's 72-Hour Sprint

Inside Block (formerly Square), a team had been struggling with a problem: their AI assistants could write code but couldn't understand their massive codebases, deployment pipelines, or internal documentation. They had built 47 different integrations. Each was brittle. Most were abandoned.

Inside Block (formerly Square), a team had been struggling with a problem: their AI assistants could write code but couldn't understand their massive codebases, deployment pipelines, or internal documentation. They had built 47 different integrations. Each was brittle. Most were abandoned.

Then MCP dropped.

Then MCP dropped.

Block Internal MCP

Block Internal MCP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// Block's first MCP server - December 6, 2024
// From their open-sourced implementation

class BlockInternalMCP extends Server {
  constructor() {
    super(
      {
        name: 'block-internal',
        version: '0.1.0',
      },
      {
        capabilities: {
          tools: {},
          resources: {},
        },
      }
    );
    
    this.initializeConnections();
  }
  
  async initializeConnections() {
    // Connect to internal systems
    this.codebase = new CodebaseConnector({
      repos: ['square/web', 'square/api', 'cashapp/backend'],
      indexer: 'internal-elasticsearch'
    });
    
    this.docs = new DocsConnector({
      confluence: process.env.CONFLUENCE_URL,
      githubWikis: ['square/wiki', 'cashapp/wiki']
    });
    
    this.deployment = new DeploymentConnector({
      jenkins: process.env.JENKINS_URL,
      kubernetesContexts: ['prod', 'staging', 'dev']
    });
    
    this.metrics = new MetricsConnector({
      datadog: process.env.DATADOG_API,
      grafana: process.env.GRAFANA_URL
    });
  }
}

// The tool that changed their workflow
{
  name: 'find_implementation',
  description: 'Find where a feature is implemented across our codebase',
  inputSchema: {
    type: 'object',
    properties: {
      feature: {
        type: 'string',
        description: 'Feature or functionality to find'
      },
      includeTests: {
        type: 'boolean',
        description: 'Include test files',
        default: false
      }
    },
    required: ['feature']
  }
}

// Implementation that actually worked
async findImplementation({ feature, includeTests }) {
  // Search across all repos simultaneously
  const searches = this.codebase.repos.map(repo => 
    this.searchRepo(repo, feature, includeTests)
  );
  
  const results = await Promise.all(searches);
  
  // Aggregate and rank results
  const aggregated = this.rankResults(results.flat(), feature);
  
  // Add context from documentation
  const docsContext = await this.docs.findRelated(feature);
  
  return {
    implementations: aggregated.slice(0, 10),
    documentation: docsContext,
    summary: this.generateSummary(aggregated, docsContext)
  };
}

// The conversation that convinced leadership
/*
Engineer: "Where is the payment tokenization implemented?"

Claude (with MCP): I'll search across Block's codebase for the payment 
tokenization implementation.

[Searching square/api, square/web, cashapp/backend...]

Found the payment tokenization implementation:

**Primary Implementation**: 
- `square/api/src/payments/tokenization/TokenService.java` (lines 45-312)
- Core tokenization logic using field-level encryption

**Related Components**:
- `square/web/src/services/PaymentTokenizer.ts` - Frontend tokenization
- `cashapp/backend/payment/token_vault.go` - Token storage service

**Documentation**:
- Confluence: "Payment Tokenization Architecture" (last updated 2 days ago)
- README: square/api/docs/tokenization.md

**Current Status**:
- Last deployed to production: 4 hours ago (v2.3.1)
- 99.98% success rate in the last 24 hours
- 3 open PRs modifying tokenization logic

Would you like me to explain how the tokenization flow works or 
help you with a specific aspect?
*/
  1. New engineer onboarding time:

2 weeks → 3 days

  2. Cross-team code discovery: 

4 hours → 5 minutes

  3. Production debugging: 

45 minutes → 10 minutes

  1. New engineer onboarding time:

2 weeks → 3 days

  2. Cross-team code discovery: 

4 hours → 5 minutes

  3. Production debugging: 

45 minutes → 10 minutes

Word spread through Block's Slack like wildfire.

Word spread through Block's Slack like wildfire.

Discussion happen

commits

Deployment Matrics

Discussion happen

commits

Deployment Matrics

Discussion happen

commits

Deployment Matrics

Discussion happen

commits

Deployment Matrics

9.1 The Block Timeline

9.1 The Block Timeline

Apollo's Customer Success Revolution

Apollo's Customer Success Revolution

While Block was revolutionizing internal development, Apollo took MCP in a different direction: customer intelligence.

While Block was revolutionizing internal development, Apollo took MCP in a different direction: customer intelligence.

Apollo MCP

Apollo MCP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// Apollo's MCP implementation focused on sales intelligence
// Released December 8, 2024

class ApolloIntelligenceMCP extends Server {
  constructor() {
    super({
      name: 'apollo-intelligence',
      version: '1.0.0'
    });
    
    // Apollo's secret sauce: unified customer context
    this.customerGraph = new CustomerIntelligenceGraph({
      sources: [
        'salesforce',
        'hubspot', 
        'intercom',
        'stripe',
        'github', // For technical accounts
        'linkedin',
        'news-api'
      ]
    });
  }
  
  // The resource that sales teams fell in love with
  async getResources() {
    return [
      {
        uri: 'apollo://accounts/{accountId}/360',
        name: 'Account 360° View',
        mimeType: 'application/json',
        description: 'Complete account intelligence including contacts, activity, and insights'
      },
      {
        uri: 'apollo://insights/daily',
        name: 'Daily Intelligence Brief',
        mimeType: 'application/json',
        description: 'AI-curated insights about your accounts'
      }
    ];
  }
  
  // The game-changing resource implementation
  async getAccount360(accountId) {
    // Parallel fetch from all sources
    const [
      salesforceData,
      communicationHistory,
      productUsage,
      financials,
      newsAndEvents,
      competitiveIntel
    ] = await Promise.all([
      this.customerGraph.getSalesforceData(accountId),
      this.customerGraph.getCommunicationHistory(accountId),
      this.customerGraph.getProductUsage(accountId),
      this.customerGraph.getFinancials(accountId),
      this.customerGraph.getNewsAndEvents(accountId),
      this.customerGraph.getCompetitiveIntel(accountId)
    ]);
    
    // Apollo's innovation: AI-powered insight generation
    const insights = await this.generateInsights({
      salesforceData,
      communicationHistory,
      productUsage,
      financials,
      newsAndEvents,
      competitiveIntel
    });
    
    return {
      account: {
        basics: salesforceData.account,
        health_score: this.calculateHealthScore(productUsage, financials),
        engagement_trend: this.analyzeEngagement(communicationHistory),
        risk_factors: insights.risks,
        opportunities: insights.opportunities
      },
      contacts: this.enrichContacts(salesforceData.contacts, communicationHistory),
      timeline: this.buildUnifiedTimeline(all_data),
      insights: insights.top_insights,
      recommended_actions: insights.actions
    };
  }
}

// The conversation that transformed sales workflows
/*
Sales Rep: "Prepare me for my call with Acme Corp in 30 minutes"

Claude (with Apollo MCP): I'll gather comprehensive intelligence on Acme Corp 
for your call.

[Accessing apollo://accounts/acme-corp/360]

**Acme Corp - Call Preparation Brief**

📊 **Account Status**: Growing (Health Score: 84/100)
- Annual Contract Value: $240,000
- 6 months into 12-month contract
- Product usage up 47% last month

👥 **Key Stakeholders on Call**:
1. **Jane Smith** (VP Engineering) 
   - Joined Acme 3 months ago from Stripe
   - Active on GitHub, focuses on API architecture
   - Recently tweeted about scaling challenges
   
2. **Bob Johnson** (CTO)
   - 2 years at Acme, promoted 6 months ago
   - Speaker at KubeCon last month
   - LinkedIn shows interest in AI/ML adoption

🎯 **Opportunities Identified**:
- Usage spike in API calls suggests growing team
- New engineering hire from Stripe indicates payment system focus
- CTO's AI interest aligns with your ML features

⚠️ **Risk Factors**:
- Competitor (TechCorp) recently hired Acme's former DevOps lead
- Support ticket volume up 23% (but resolution time improved)

💡 **Recommended Talk Track**:
1. Congratulate Jane on joining and ask about her scaling priorities
2. Reference Bob's KubeCon talk on microservices
3. Bridge to your new ML-powered features
4. Proactively address the support ticket increase

**Recent Context**: 
- Last meeting (Oct 15): Discussed API rate limits
- Support case #4521: Resolved yesterday (webhook configuration)
- Feature request: Bulk operations API (submitted last week)

Would you like me to generate specific questions based on their 
recent activities?
*/

The results at Apollo:

The results at Apollo:

Sales call preparation: 45 minutes → 5 minutes

Sales call preparation: 45 minutes → 5 minutes

Context switching between accounts: Eliminated

Context switching between accounts: Eliminated

Win rate improvement: 23%

Win rate improvement: 23%

Customer satisfaction: Up 31%

Customer satisfaction: Up 31%

9.2 The Apollo Dashboard

9.2 The Apollo Dashboard

The IDE Revolution

The IDE Revolution

As enterprises adopted MCP, something beautiful happened in the developer tools ecosystem. IDE makers realized they didn't need to build AI features—they needed to support MCP.

As enterprises adopted MCP, something beautiful happened in the developer tools ecosystem. IDE makers realized they didn't need to build AI features—they needed to support MCP.

Zed: First to Market

Zed: First to Market

Zed pushed an MCP update on December 11, 2024. The implementation was elegant:

Zed pushed an MCP update on December 11, 2024. The implementation was elegant:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Zed's MCP integration (simplified from actual Rust implementation)
impl MCPSupport for ZedWorkspace {
    async fn initialize_mcp_servers(&mut self) {
        // Read MCP configuration from workspace
        let config_path = self.workspace_root.join(".mcp/config.toml");
        let config = MCPConfig::from_file(config_path).await?;
        
        // Launch configured MCP servers
        for (name, server_config) in config.servers {
            let server = self.launch_mcp_server(name, server_config).await?;
            self.mcp_servers.insert(name, server);
            
            // Register capabilities with Zed's AI assistant
            let capabilities = server.get_capabilities().await?;
            self.ai_assistant.register_mcp_capabilities(name, capabilities);
        }
    }
    
    // The integration that made developers gasp
    async fn handle_ai_request(&self, request: String) -> Response {
        // Zed's innovation: Automatic MCP server selection
        let relevant_servers = self.analyze_request_context(&request);
        
        // Provide context to AI with available MCP capabilities
        let context = MCPContext {
            available_servers: relevant_servers,
            workspace_files: self.get_relevant_files(&request),
            cursor_context: self.get_cursor_context(),
        };
        
        // Let AI orchestrate across MCP servers
        self.ai_assistant.process_with_mcp(request, context).await
    }
}

Developers started sharing their workflows:

Developers started sharing their workflows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# .mcp/config.toml in a typical Zed project
[servers.code-analyzer]
command = "mcp-code-analyzer"
args = ["--language", "rust"]

[servers.test-runner]
command = "mcp-test-runner"
args = ["--framework", "jest"]

[servers.docs]
command = "mcp-markdown-server"
args = ["./docs"]

[servers.database]
command = "mcp-postgres"
env = { DATABASE_URL = "${DATABASE_URL}" }

Cursor: The Integration that Felt Like Magic

Cursor: The Integration that Felt Like Magic

Cursor took a different approach. Instead of just supporting MCP, they made it invisible:

Cursor took a different approach. Instead of just supporting MCP, they made it invisible:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Cursor's "Ambient MCP" - MCP servers as first-class workspace citizens
class CursorMCPIntegration {
  async setupWorkspace(workspacePath) {
    // Auto-detect project type and suggest MCP servers
    const projectType = await this.detectProjectType(workspacePath);
    const suggestedServers = this.getSuggestedServers(projectType);
    
    if (suggestedServers.length > 0) {
      const accepted = await this.promptUser(
        `Cursor detected a ${projectType} project. Enable intelligent features?`,
        suggestedServers
      );
      
      if (accepted) {
        await this.autoConfigureMCP(workspacePath, suggestedServers);
      }
    }
  }
  
  getSuggestedServers(projectType) {
    const suggestions = {
      'node': ['mcp-npm', 'mcp-eslint', 'mcp-jest'],
      'python': ['mcp-pip', 'mcp-pytest', 'mcp-black'],
      'rust': ['mcp-cargo', 'mcp-clippy', 'mcp-rustdoc'],
      'go': ['mcp-gomod', 'mcp-gotest', 'mcp-golint'],
      'react': ['mcp-npm', 'mcp-webpack', 'mcp-component-analyzer'],
      'django': ['mcp-pip', 'mcp-django-admin', 'mcp-migrations'],
    };
    
    return suggestions[projectType] || [];
  }
  
  // The feature that made developers fall in love
  async handleInlineQuery(query, cursorContext) {
    // "Fix this function" becomes context-aware
    if (query.match(/fix|debug|improve/i)) {
      const functionContext = this.extractFunctionContext(cursorContext);
      
      // Automatically engage relevant MCP servers
      const analysis = await Promise.all([
        this.mcp.testRunner.getFailingTests(functionContext.name),
        this.mcp.linter.getIssues(functionContext.file),
        this.mcp.typeChecker.getErrors(functionContext.file),
        this.mcp.performanceAnalyzer.profile(functionContext.name)
      ]);
      
      return this.generateContextAwareFix(functionContext, analysis);
    }
  }
}

// The workflow that went viral on Twitter
/*
Developer types: "fix this function"

Cursor (with MCP):
- Runs tests, finds 2 failing
- Checks types, finds undefined variable
- Runs linter, finds unused import
- Analyzes performance, suggests optimization

*Automatically fixes all issues in one shot*

Developer: 🤯
*/

AI Suggestion

Plugin Ecosystem

AI Suggestion

Plugin Ecosystem

9.3 IDE Feature Matrix

9.3 IDE Feature Matrix

The Open Source Explosion

The Open Source Explosion

With enterprises and IDEs onboard, the open source community erupted. The numbers tell the story:

With enterprises and IDEs onboard, the open source community erupted. The numbers tell the story:

Week 1 (Dec 4-11, 2024):

200 MCP servers published

15 language SDKs started

1,000+ GitHub stars on main repo

Week 1 (Dec 4-11, 2024):

200 MCP servers published

15 language SDKs started

1,000+ GitHub stars on main repo

Week 1 (Dec 4-11, 2024):

200 MCP servers published

15 language SDKs started

1,000+ GitHub stars on main repo

Month 1 (December 2024):

1,250 MCP servers

8 production-ready SDKs

10,000+ developers building

Month 1 (December 2024):

1,250 MCP servers

8 production-ready SDKs

10,000+ developers building

Month 1 (December 2024):

1,250 MCP servers

8 production-ready SDKs

10,000+ developers building

Month 3 (February 2025):

5,000+ MCP servers

Every major language supported

100,000+ weekly active developers

Month 3 (February 2025):

5,000+ MCP servers

Every major language supported

100,000+ weekly active developers

Month 3 (February 2025):

5,000+ MCP servers

Every major language supported

100,000+ weekly active developers

But numbers don't capture the creativity:

But numbers don't capture the creativity:

MCP Sportify

MCP Sportify

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// The MCP server that started the "awesome-mcp" list
// "MCP-Spotify" by @sarah_codes

class SpotifyMCP extends Server {
  // This simple server sparked hundreds of integrations
  async getTools() {
    return [
      {
        name: 'play_music_for_coding',
        description: 'Play music optimized for your current coding task',
        inputSchema: {
          type: 'object',
          properties: {
            task: {
              type: 'string',
              enum: ['debugging', 'implementing', 'reviewing', 'designing'],
              description: 'What are you coding?'
            },
            energy: {
              type: 'string',
              enum: ['low', 'medium', 'high'],
              description: 'Energy level needed'
            }
          }
        }
      }
    ];
  }
  
  async playMusicForCoding({ task, energy }) {
    // Sarah's insight: Different coding tasks need different music
    const playlists = {
      debugging: {
        low: 'spotify:playlist:37i9dQZF1DX4OzrY981I1W', // Lo-fi beats
        medium: 'spotify:playlist:37i9dQZF1DX6J5NfMJS675', // Minimal tech
        high: 'spotify:playlist:37i9dQZF1DX0SM0LYsmbMT'    // Electronic focus
      },
      implementing: {
        low: 'spotify:playlist:37i9dQZF1DX1rVvRgjX59F', // Ambient
        medium: 'spotify:playlist:37i9dQZF1DXdwmD5Q7Gxah', // Flow state
        high: 'spotify:playlist:37i9dQZF1DX692WcMwL2yW'    // Upbeat electronic
      }
      // ... more mappings
    };
    
    const playlist = playlists[task]?.[energy];
    if (playlist) {
      await this.spotify.play(playlist);
      return `Playing ${task} music (${energy} energy). Happy coding! 🎵`;
    }
  }
}

// This sparked a movement:
// - mcp-github-actions: CI/CD control through Claude
// - mcp-home-assistant: "Claude, turn off the lights"  
// - mcp-calendar: "Block 2 hours for deep work"
// - mcp-nutrition: "Track what I ate today"
// - mcp-finance: "How much did I spend on coffee this month?"

9.4 The MCP Galaxy

9.4 The MCP Galaxy

The Community Chronicles

The Community Chronicles

The MCP Discord became the heartbeat of the ecosystem. Some memorable moments:

The MCP Discord became the heartbeat of the ecosystem. Some memorable moments:

The Great Schema Debate (December 15, 2024)

@Alexdev

Should tool schemas be strict or flexible?

@maria_codes

Strict! Type safety matters!

@pragmatic_paul

Flexible! Don't constrain creativity!

300 Messages later

@damo (Anthropic)

Why not both? Required fields for safety,

additional properties for flexibility.

[Community adopts this as best practice]

@Alexdev

Should tool schemas be strict or flexible?

@maria_codes

Strict! Type safety matters!

@pragmatic_paul

Flexible! Don't constrain creativity!

300 Messages later

@damo (Anthropic)

Why not both? Required fields for safety,

additional properties for flexibility.

[Community adopts this as best practice]

@Alexdev

Should tool schemas be strict or flexible?

@maria_codes

Strict! Type safety matters!

@pragmatic_paul

Flexible! Don't constrain creativity!

300 Messages later

@damo (Anthropic)

Why not both? Required fields for safety,

additional properties for flexibility.

[Community adopts this as best practice]

The First MCP Hackathon (January 2025)

  1. 48 hours

  2. 2,000 participants

  3. 400 projects submitted

  4. Winner: "MCP-Mirror" - A server that lets Claude see what you see (via screenshots)

  1. 48 hours

  2. 2,000 participants

  3. 400 projects submitted

  4. Winner: "MCP-Mirror" - A server that lets Claude see what you see (via screenshots)

  1. 48 hours

  2. 2,000 participants

  3. 400 projects submitted

  4. Winner: "MCP-Mirror" - A server that lets Claude see what you see (via screenshots)

The Enterprise Support Thread

@bigcorp_dev

We need enterprise features - auth, audit logs, compliance. MCP feels too "open

@community

Challenge accepted

72 Hours Later

mcp-enterprise-auth: SAML, OAuth, mTLS

mcp-audit-logger: Complete audit trail

mcp-compliance: SOC2, HIPAA helpers

@bigcorp_dev

... wow

@bigcorp_dev

We need enterprise features - auth, audit logs, compliance. MCP feels too "open

@community

Challenge accepted

72 Hours Later

mcp-enterprise-auth: SAML, OAuth, mTLS

mcp-audit-logger: Complete audit trail

mcp-compliance: SOC2, HIPAA helpers

@bigcorp_dev

... wow

@bigcorp_dev

We need enterprise features - auth, audit logs, compliance. MCP feels too "open

@community

Challenge accepted

72 Hours Later

mcp-enterprise-auth: SAML, OAuth, mTLS

mcp-audit-logger: Complete audit trail

mcp-compliance: SOC2, HIPAA helpers

@bigcorp_dev

... wow

Discord

Community

Discord

Community

Hackathon Projects

Hackathon Projects

9.5 Community Moments

9.5 Community Moments

The Protocol Evolution

The Protocol Evolution

As adoption exploded, the protocol evolved. Not through committees, but through use:

As adoption exploded, the protocol evolved. Not through committees, but through use:

Evolution MEthod

Evolution MEthod

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Evolution Example: Resource Subscriptions
// December 2024: Basic polling
{
  method: 'resources/read',
  params: { uri: 'file://data.json' }
}
// Repeat every few seconds 😱

// January 2025: Community proposes subscriptions
{
  method: 'resources/subscribe',
  params: { 
    uri: 'file://data.json',
    events: ['change', 'delete']
  }
}

// February 2025: Adopted into spec
// Now every file server supports efficient watching

// Evolution Example: Tool Composition  
// December 2024: Tools work in isolation
await mcp.callTool('read_file', { path: 'data.csv' });
await mcp.callTool('analyze_data', { data: csvContent });

// March 2025: Community creates composition spec
await mcp.compose([
  { tool: 'read_file', args: { path: 'data.csv' }, as: 'data' },
  { tool: 'analyze_data', args: { data: '$data' } }
]);

// Now: Built into most MCP clients

9.6 Community

9.6 Community

The Business Impact

The Business Impact

Real companies shared real numbers:

Real companies shared real numbers:

Replit (February 2025)

"MCP reduced our AI integration complexity by 90%. We deprecated 12 custom integrations in favor of MCP servers. Developer happiness is at an all-time high."

Amjad Masad, CEO

Replit (February 2025)

"MCP reduced our AI integration complexity by 90%. We deprecated 12 custom integrations in favor of MCP servers. Developer happiness is at an all-time high."

Amjad Masad, CEO

Replit (February 2025)

"MCP reduced our AI integration complexity by 90%. We deprecated 12 custom integrations in favor of MCP servers. Developer happiness is at an all-time high."

Amjad Masad, CEO

Linear (March 2025)

"Every new employee now has an AI assistant that understands our entire codebase, issue tracker, and documentation on day one. Onboarding time dropped 60%."

Karri Saarinen, CEO

Linear (March 2025)

"Every new employee now has an AI assistant that understands our entire codebase, issue tracker, and documentation on day one. Onboarding time dropped 60%."

Karri Saarinen, CEO

Linear (March 2025)

"Every new employee now has an AI assistant that understands our entire codebase, issue tracker, and documentation on day one. Onboarding time dropped 60%."

Karri Saarinen, CEO

Vercel (March 2025)

"We expose our entire platform through MCP. Developers can now say 'deploy this with proper caching headers' and it just works."

Guillermo Rauch, CEO

Vercel (March 2025)

"We expose our entire platform through MCP. Developers can now say 'deploy this with proper caching headers' and it just works."

Guillermo Rauch, CEO

Vercel (March 2025)

"We expose our entire platform through MCP. Developers can now say 'deploy this with proper caching headers' and it just works."

Guillermo Rauch, CEO

MCP Host Roadmap

MCP Host Roadmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// What's actually being developed (not speculation)
interface MCPHostRoadmap {
  // Coming soon (based on GitHub discussions)
  inDevelopment: {
    // Better error handling
    structuredErrors: 'Standardized error codes and recovery suggestions',
    
    // Performance improvements  
    connectionPooling: 'Reuse connections for better performance',
    
    // Enhanced security
    sandboxing: 'Run MCP servers in isolated environments',
    
    // Developer experience
    debugging: 'Better tools for debugging MCP connections'
  };
  
  // Community requests (from actual GitHub issues)
  communityWishlist: [
    'Hot-reload configuration changes',
    'Built-in health checks for servers',
    'Automatic retry with exponential backoff',
    'Request/response logging and replay',
    'Load balancing across multiple instances'
  ];
}

// Real example: Community-built enhancement
class EnhancedHost extends BasicHost {
  // Auto-retry failed requests (popular request)
  async requestWithRetry(client, method, params, maxRetries = 3) {
    let lastError;
    
    for (let i = 0; i < maxRetries; i++) {
      try {
        return await client.request(method, params);
      } catch (error) {
        lastError = error;
        
        // Exponential backoff
        const delay = Math.min(1000 * Math.pow(2, i), 10000);
        await new Promise(resolve => setTimeout(resolve, delay));
      }
    }
    
    throw lastError;
  }
  
  // Health checking (another popular request)
  async startHealthChecks() {
    setInterval(async () => {
      for (const [name, client] of this.clients) {
        try {
          await client.request('ping', {});
          console.log(`✓ ${name} is healthy`);
        } catch (error) {
          console.log(`✗ ${name} is unhealthy:`, error.message);
          this.reconnect(name);
        }
      }
    }, 30000); // Every 30 seconds
  }
}

Cost Savings

-30% Costs

Time Savings

+40% Faster

Productivity gain

3x productivity

cOMPANY sIZE

1.000 Employees

Integration Count

50+ Integrations

Cost Savings

-30% Costs

Time Savings

+40% Faster

Productivity gain

3x productivity

cOMPANY sIZE

1.000 Employees

Integration Count

50+ Integrations

Cost Savings

-30% Costs

Time Savings

+40% Faster

Productivity gain

3x productivity

cOMPANY sIZE

1.000 Employees

Integration Count

50+ Integrations

9.7 Impact Calculator

9.7 Impact Calculator

The Tipping Point

The Tipping Point

By March 2025, something had fundamentally shifted. MCP wasn't a protocol anymore—it was the assumed default:

By March 2025, something had fundamentally shifted. MCP wasn't a protocol anymore—it was the assumed default:

The ecosystem hadn't just awakened. It was wide awake and building the future.

The ecosystem hadn't just awakened. It was wide awake and building the future.

GitHub: "Add MCP support" labels on every AI tool repository

GitHub: "Add MCP support" labels on every AI tool repository

GitHub: "Add MCP support" labels on every AI tool repository

Stack Overflow: MCP questions overtaking REST API questions

Stack Overflow: MCP questions overtaking REST API questions

Stack Overflow: MCP questions overtaking REST API questions

Job Posts: "MCP experience required" appearing everywhere

Job Posts: "MCP experience required" appearing everywhere

Job Posts: "MCP experience required" appearing everywhere

YC Startups: 60% of new AI startups building on MCP

YC Startups: 60% of new AI startups building on MCP

YC Startups: 60% of new AI startups building on MCP

Your Place in the Ecosystem

Your Place in the Ecosystem

Today, as you read this, the MCP ecosystem continues to expand:

Today, as you read this, the MCP ecosystem continues to expand:

500+ new MCP servers weekly

500+ new MCP servers weekly

500+ new MCP servers weekly

Every major programming language supported

Every major programming language supported

Every major programming language supported

IDE support is table stakes

IDE support is table stakes

IDE support is table stakes

Enterprises adopting by default

Enterprises adopting by default

Enterprises adopting by default

But there are still frontiers:

But there are still frontiers:

Emerging Pattern

Emerging Pattern

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Emerging patterns that need builders

// 1. Cross-Server Transactions
// Challenge: Coordinate changes across multiple servers
// Opportunity: Build mcp-transaction-coordinator

// 2. Semantic Server Discovery
// Challenge: Find the right server for any task
// Opportunity: Build mcp-server-registry

// 3. Privacy-Preserving MCP
// Challenge: Use MCP with sensitive data
// Opportunity: Build mcp-homomorphic-encryption

// 4. MCP Performance Monitoring  
// Challenge: Understand MCP performance in production
// Opportunity: Build mcp-observatory

// 5. Natural Language to MCP
// Challenge: Let users describe servers in plain English
// Opportunity: Build mcp-generator

Unexplored

Wishlist

Claimed

Unexplored

Wishlist

Claimed

Unexplored

Wishlist

Claimed

9.8 Ecosystem Opportunities

9.8 Ecosystem Opportunities

The Network Effect Visualized

The Network Effect Visualized

Watch how MCP adoption created unstoppable momentum:

Watch how MCP adoption created unstoppable momentum:

Phase 1: Early Adopters (Dec 2024)

  • Anthropic releases MCP

  • Block and Apollo implement

  • First open source servers appear

Phase 1: Early Adopters (Dec 2024)

  • Anthropic releases MCP

  • Block and Apollo implement

  • First open source servers appear

Phase 1: Early Adopters (Dec 2024)

  • Anthropic releases MCP

  • Block and Apollo implement

  • First open source servers appear

Phase 2: Tool Makers (Jan 2025)

  • IDEs add support

  • Developer tools integrate

  • SDK ecosystem emerges

Phase 2: Tool Makers (Jan 2025)

  • IDEs add support

  • Developer tools integrate

  • SDK ecosystem emerges

Phase 2: Tool Makers (Jan 2025)

  • IDEs add support

  • Developer tools integrate

  • SDK ecosystem emerges

Phase 3: Critical Mass (Feb 2025)

  • Most AI tools support MCP

  • Enterprises adopt by default

  • Community drives innovation

Phase 3: Critical Mass (Feb 2025)

  • Most AI tools support MCP

  • Enterprises adopt by default

  • Community drives innovation

Phase 3: Critical Mass (Feb 2025)

  • Most AI tools support MCP

  • Enterprises adopt by default

  • Community drives innovation

Phase 4: New Normal (Mar 2025)

  • MCP assumed in all AI tools

  • Rich ecosystem of servers

  • Innovation at the edges

Phase 4: New Normal (Mar 2025)

  • MCP assumed in all AI tools

  • Rich ecosystem of servers

  • Innovation at the edges

Phase 4: New Normal (Mar 2025)

  • MCP assumed in all AI tools

  • Rich ecosystem of servers

  • Innovation at the edges

Early adopters

Early adopters

Early adopters

9.9 The Domino Effect

9.9 The Domino Effect

The Network Effect Visualized

The Network Effect Visualized

Watch how MCP adoption created unstoppable momentum:

Watch how MCP adoption created unstoppable momentum:

Simplicity Wins:

Simplicity Wins:

MCP succeeded because it was simple to understand and implement

MCP succeeded because it was simple to understand and implement

Community First

Community First

Every major feature came from community needs, not committee design

Every major feature came from community needs, not committee design

Real Problems

Real Problems

Successful MCP servers solved actual pain points

Successful MCP servers solved actual pain points

MIT License

MIT License

MIT license and open governance created trust

MIT license and open governance created trust

Network Effects

Network Effects

Each adoption made the next one more valuable

Each adoption made the next one more valuable

The Ecosystem Today

The Ecosystem Today

As you join the MCP ecosystem, you're entering a vibrant community:

As you join the MCP ecosystem, you're entering a vibrant community:

Const Ecosystem

Const Ecosystem

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Resources for new builders
const ecosystem = {
  // Official
  docs: 'https://modelcontextprotocol.io/docs',
  github: 'https://github.com/modelcontextprotocol',
  
  // Community  
  discord: 'MCP Community Discord (25,000+ members)',
  awesome: 'https://github.com/awesome-mcp/awesome-mcp',
  marketplace: 'https://mcp.directory',
  
  // Learning
  tutorials: 'https://learn.mcp.dev',
  examples: 'https://github.com/mcp-examples',
  videos: 'YouTube: MCP Tutorials (1000+ videos)',
  
  // Tools
  validator: 'https://validator.mcp.dev',
  playground: 'https://playground.mcp.dev',
  benchmarks: 'https://bench.mcp.dev'
};

// Your first contribution awaits

Questionnaire

Questionnaire

9.10 Join the Ecosystem

9.10 Join the Ecosystem

The Future Being Written

The Future Being Written

The MCP ecosystem isn't just growing—it's evolving. Every day brings new possibilities:

The MCP ecosystem isn't just growing—it's evolving. Every day brings new possibilities:

Today: AI assistants that understand your tools

Today: AI assistants that understand your tools

Today: AI assistants that understand your tools

Tomorrow: AI that seamlessly orchestrates your entire workflow

Tomorrow: AI that seamlessly orchestrates your entire workflow

Tomorrow: AI that seamlessly orchestrates your entire workflow

Next Year: AI that anticipates needs and proactively helps

Next Year: AI that anticipates needs and proactively helps

Next Year: AI that anticipates needs and proactively helps

The Dream: AI as a true collaborative partner

The Dream: AI as a true collaborative partner

The Dream: AI as a true collaborative partner

You're not just learning about MCP. You're joining a movement that's redefining how humans and AI work together.

You're not just learning about MCP. You're joining a movement that's redefining how humans and AI work together.

9.11 Your MCP Impact

9.11 Your MCP Impact