Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
ff271a1
feat(google-ads): initialize Google Ads MCP with core files
JonasJesus42 Jan 8, 2026
8a470ef
Bump runtime version
mcandeia Jan 8, 2026
cfd2c41
feat(google-big-query): Add new BigQuery MCP with OAuth PKCE
JonasJesus42 Jan 8, 2026
55c6207
feat(bigquery-client): Add maxWaitMs option for query timeout handling
JonasJesus42 Jan 8, 2026
a681e6e
llm binding
tlgimenes Jan 8, 2026
acb0974
redeploy
JonasJesus42 Jan 8, 2026
2be3350
refactor(app.json, README.md): Update app name and enhance documentation
JonasJesus42 Jan 8, 2026
8f3a2a2
refactor(app.json): Update scopeName to "official" for multiple appli…
JonasJesus42 Jan 8, 2026
e23d1bc
refactor(app.json): Update scopeName for multiple applications
JonasJesus42 Jan 8, 2026
18f690c
refactor(app.json): Standardize scopeName and friendly_name across mu…
JonasJesus42 Jan 8, 2026
1ac8ad5
refactor(app.json): Standardize friendlyName across multiple applicat…
JonasJesus42 Jan 8, 2026
af917ef
refactor(app.json): Simplify friendlyName for multiple applications
JonasJesus42 Jan 8, 2026
d26845f
try
pedrofrxncx Jan 8, 2026
c477dbd
bump
pedrofrxncx Jan 8, 2026
9d0ad21
pls
pedrofrxncx Jan 9, 2026
d1d02f2
add ts-morph
pedrofrxncx Jan 9, 2026
34db21e
Redeploy
JonasJesus42 Jan 9, 2026
5b6cb08
Adds deco llm binding (#107)
mcandeia Jan 9, 2026
6a59df0
Fixes app.json
mcandeia Jan 9, 2026
d33f758
Fixes build-mcp pkg
mcandeia Jan 9, 2026
df51537
Fixes build script
mcandeia Jan 9, 2026
2f351d8
Fixes build script(2)
mcandeia Jan 9, 2026
547c624
Update app.json files for Google Tag Manager and Grain MCP
JonasJesus42 Jan 9, 2026
26866e0
Add cloudflare-observability app.json configuration
JonasJesus42 Jan 9, 2026
5745b61
Add mesh_unlisted property to app.json files for various services
JonasJesus42 Jan 9, 2026
f055266
Update app.json files to change category to categories for consistenc…
JonasJesus42 Jan 9, 2026
21a54d1
Enhance app.json files for various services by adding metadata sectio…
JonasJesus42 Jan 9, 2026
e678f87
Refactor app.json files to change category values from strings to arr…
JonasJesus42 Jan 9, 2026
a00466d
Fix JSON formatting in app.json
JonasJesus42 Jan 9, 2026
18bac65
feat(google-ads): enhance Google Ads MCP with developer token support…
JonasJesus42 Jan 9, 2026
2957040
refactor(google-ads): improve code quality, typing and security
JonasJesus42 Jan 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
594 changes: 295 additions & 299 deletions bun.lock

Large diffs are not rendered by default.

43 changes: 43 additions & 0 deletions cloudflare-docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Cloudflare Docs MCP Server Official

This is the **official Cloudflare Docs MCP Server**, provided directly by the Cloudflare team for accessing documentation.

## About Cloudflare Docs

Cloudflare Docs provides comprehensive documentation for all Cloudflare products and services. With this official MCP, you can:

- 📚 **Search Documentation** - Find documentation through natural language queries
- 💡 **Get Help** - Get instant answers about Cloudflare products
- 🔍 **API Reference** - Access API documentation and examples
- 📖 **Guides & Tutorials** - Find step-by-step guides
- 🛠️ **Troubleshooting** - Get help resolving issues
- 🤝 **Official Integration** - Direct support and features maintained by the Cloudflare team

## Connection

This MCP connects to the official Cloudflare Docs server at:

```
https://docs.mcp.cloudflare.com/sse
```

## How to Use

1. Install this MCP through the registry
2. Start asking questions about Cloudflare products
3. Get instant access to documentation and examples

## Official Resources

- 🌐 Website: [developers.cloudflare.com](https://developers.cloudflare.com)
- 📚 Documentation: [developers.cloudflare.com/docs](https://developers.cloudflare.com/docs)
- 🆘 Support: Contact through official Cloudflare support

## Status

✅ **Official MCP** - This is the official MCP server maintained by the Cloudflare team.

---

*This MCP provides public access to Cloudflare documentation.*

20 changes: 20 additions & 0 deletions cloudflare-docs/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"scopeName": "cloudflare",
"name": "cloudflare-docs-mcp",
"friendlyName": "Cloudflare Docs",
"connection": {
"type": "HTTP",
"url": "https://docs.mcp.cloudflare.com/sse"
},
"description": "Access Cloudflare's comprehensive documentation through natural language. Search, query, and get help with Cloudflare products and APIs instantly.",
"icon": "https://www.cloudflare.com/favicon.ico",
"unlisted": false,
"metadata": {
"categories": ["Documentation"],
"official": true,
"mesh_unlisted": true,
"tags": ["documentation", "api-reference", "guides", "tutorials", "cloudflare", "learning", "support", "knowledge-base"],
"short_description": "Access Cloudflare's comprehensive documentation through natural language",
"mesh_description": "Cloudflare Docs MCP provides intelligent access to Cloudflare's extensive documentation covering all products and services. This official documentation assistant helps you find information about Workers, Pages, R2 Storage, D1 Database, Queues, Durable Objects, KV, Stream, Images, CDN, DNS, SSL/TLS, WAF, DDoS Protection, Load Balancing, Argo, Spectrum, Magic Transit, and more. Search through detailed API references with code examples in multiple languages, step-by-step tutorials for common use cases, best practices guides, troubleshooting documentation, and architectural patterns. The MCP uses semantic search to understand your questions and provide contextually relevant answers, combining information from multiple documentation pages when needed. Get instant access to product limits, pricing details, feature comparisons, migration guides, security recommendations, and performance optimization tips. Perfect for developers building on Cloudflare's platform, the MCP can explain complex concepts, suggest solutions to problems, and guide you through configuration steps with clear, actionable information."
}
}
43 changes: 43 additions & 0 deletions cloudflare-observability/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Cloudflare Observability MCP Server Official

This is the **official Cloudflare Observability MCP Server**, provided directly by the Cloudflare team for monitoring and analytics.

## About Cloudflare Observability

Cloudflare Observability provides comprehensive monitoring and analytics for your Cloudflare services. With this official MCP, you can:

- 📊 **Analytics** - Access real-time analytics and insights
- 📝 **Logs** - Query and analyze logs from Workers, WAF, and other services
- 📈 **Metrics** - Monitor performance metrics and trends
- 🔍 **Traces** - Analyze request traces and performance
- ⚠️ **Alerts** - Configure and manage alerting
- 🤝 **Official Integration** - Direct support and features maintained by the Cloudflare team

## Connection

This MCP connects to the official Cloudflare Observability server at:

```
https://observability.mcp.cloudflare.com/sse
```

## How to Use

1. Install this MCP through the registry
2. Configure your Cloudflare API credentials when prompted
3. Start monitoring your services with AI assistance

## Official Resources

- 🌐 Website: [cloudflare.com/products/cloudflare-logs](https://www.cloudflare.com/products/cloudflare-logs)
- 📚 Documentation: [developers.cloudflare.com/analytics](https://developers.cloudflare.com/analytics)
- 🆘 Support: Contact through official Cloudflare support

## Status

✅ **Official MCP** - This is the official MCP server maintained by the Cloudflare team.

---

*This MCP requires an active Cloudflare account to function.*

21 changes: 21 additions & 0 deletions cloudflare-observability/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"scopeName": "cloudflare",
"name": "cloudflare-observability-mcp",
"friendlyName": "Cloudflare Observability",
"connection": {
"type": "HTTP",
"url": "https://observability.mcp.cloudflare.com/sse"
},
"description": "Monitor and analyze your Cloudflare services with comprehensive observability tools. Access logs, metrics, analytics, and traces through natural language.",
"icon": "https://www.cloudflare.com/favicon.ico",
"unlisted": false,
"metadata": {
"categories": ["Observability"],
"official": true,
"mesh_unlisted": true,
"tags": ["monitoring", "logs", "analytics", "metrics", "tracing", "cloudflare", "observability", "performance", "debugging"],
"short_description": "Monitor and analyze your Cloudflare services with comprehensive observability tools",
"mesh_description": "Cloudflare Observability provides enterprise-grade monitoring and analytics for all Cloudflare services including Workers, CDN, WAF, and Load Balancers. This official MCP enables you to access real-time logs from Workers, HTTP requests, firewall events, and DDoS attacks. Query and analyze performance metrics such as request latency, bandwidth usage, error rates, and cache hit ratios across global data centers. The platform offers distributed tracing capabilities to track requests across your entire application stack, helping identify bottlenecks and optimize performance. Access Web Analytics for visitor insights, GraphQL Analytics API for custom queries, and Logpush integration for streaming logs to external systems. Use natural language to configure alerting rules, create custom dashboards, analyze traffic patterns, investigate security incidents, and generate compliance reports. The MCP simplifies complex queries and provides AI-powered insights to help you understand your application's behavior and user experience."
}
}

43 changes: 43 additions & 0 deletions cloudflare-workers/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Cloudflare Workers MCP Server Official

This is the **official Cloudflare Workers MCP Server**, provided directly by the Cloudflare team for integration with Cloudflare Workers platform.

## About Cloudflare Workers

Cloudflare Workers is a serverless platform that lets you deploy code instantly across the globe. With this official MCP, you can:

- ⚡ **Deploy Functions** - Deploy and manage serverless functions at the edge
- 🗄️ **KV Management** - Interact with Workers KV key-value storage
- 🔄 **Durable Objects** - Manage stateful objects and coordination
- 🔗 **Bindings** - Configure and manage Workers bindings
- 📊 **Monitor Performance** - Check metrics and logs
- 🤝 **Official Integration** - Direct support and features maintained by the Cloudflare team

## Connection

This MCP connects to the official Cloudflare Workers server at:

```
https://bindings.mcp.cloudflare.com/sse
```

## How to Use

1. Install this MCP through the registry
2. Configure your Cloudflare API credentials when prompted
3. Start managing your Workers with AI assistance

## Official Resources

- 🌐 Website: [workers.cloudflare.com](https://workers.cloudflare.com)
- 📚 Documentation: [developers.cloudflare.com/workers](https://developers.cloudflare.com/workers)
- 🆘 Support: Contact through official Cloudflare support

## Status

✅ **Official MCP** - This is the official MCP server maintained by the Cloudflare team.

---

*This MCP requires an active Cloudflare account to function.*

20 changes: 20 additions & 0 deletions cloudflare-workers/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"scopeName": "cloudflare",
"name": "cloudflare-workers-mcp",
"friendlyName": "Cloudflare Workers",
"connection": {
"type": "HTTP",
"url": "https://bindings.mcp.cloudflare.com/sse"
},
"description": "Deploy and manage serverless functions at the edge with Cloudflare Workers. Interact with Workers, KV, Durable Objects, and bindings through natural language.",
"icon": "https://www.cloudflare.com/favicon.ico",
"unlisted": false,
"metadata": {
"categories": ["Software Development"],
"official": true,
"mesh_unlisted": true,
"tags": ["serverless", "edge-computing", "javascript", "workers", "kv", "durable-objects", "cloudflare", "deployment", "functions"],
"short_description": "Deploy and manage serverless functions at the edge with Cloudflare Workers",
"mesh_description": "Cloudflare Workers is a serverless platform that enables developers to deploy and run code at the edge, across Cloudflare's global network of data centers. With this official MCP, you can manage Workers, interact with Workers KV (key-value storage), configure Durable Objects for stateful applications, and manage bindings between different Cloudflare services. The platform supports JavaScript, TypeScript, Python, and Rust, allowing you to build highly scalable and performant applications that run close to your users. Workers can handle millions of requests per second with sub-millisecond latency, making them ideal for API gateways, middleware, authentication, A/B testing, and edge rendering. The MCP provides natural language access to deployment workflows, environment variables, routes configuration, and real-time monitoring of your Workers performance and usage metrics."
}
}
9 changes: 8 additions & 1 deletion content-scraper/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,12 @@
},
"description": "Scrape web content from URLs using n8n workflow automation.",
"icon": "https://assets.decocache.com/mcp/content-scraper-icon.svg",
"unlisted": false
"unlisted": false,
"metadata": {
"categories": ["Data Extraction"],
"official": false,
"tags": ["scraping", "web-scraping", "content-extraction", "automation", "n8n", "data-collection"],
"short_description": "Scrape web content from URLs using n8n workflow automation.",
"mesh_description": "The Content Scraper MCP provides powerful web scraping capabilities powered by n8n workflow automation, enabling AI agents to extract structured and unstructured content from websites. This MCP supports scraping HTML content, extracting specific elements using CSS selectors or XPath, handling JavaScript-rendered pages, following pagination, and processing dynamic content. It includes built-in features for rate limiting, user-agent rotation, proxy support, and anti-bot detection bypass. The integration leverages n8n's workflow engine for complex scraping scenarios including multi-step extraction, data transformation, and conditional logic. Perfect for market research, competitive intelligence, content aggregation, price monitoring, lead generation, or any application requiring automated web data collection. Supports various output formats and can handle single-page scraping or bulk URL processing. Ideal for building data pipelines, research tools, or content monitoring systems."
}
}
2 changes: 1 addition & 1 deletion content-scraper/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"build": "bun run build:server"
},
"dependencies": {
"@decocms/runtime": "^1.1.0",
"@decocms/runtime": "^1.1.3",
"@supabase/supabase-js": "^2.49.0",
"zod": "^4.0.0"
},
Expand Down
1 change: 1 addition & 0 deletions deco-llm/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.dev.vars
12 changes: 12 additions & 0 deletions deco-llm/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"scopeName": "deco",
"name": "llm",
"friendlyName": "Deco AI Gateway",
"connection": {
"type": "HTTP",
"url": "https://sites-deco-llm.decocache.com/mcp"
},
"description": "Deco LLM App Connection for LLM uses.",
"icon": "https://assets.decocache.com/mcp/6e1418f7-c962-406b-aceb-137197902709/ai-gateway.png",
"unlisted": false
}
40 changes: 40 additions & 0 deletions deco-llm/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"name": "deco-llm",
"version": "1.0.0",
"description": "Deco LLM App Connection for LLM uses.",
"private": true,
"type": "module",
"scripts": {
"dev": "bun run --hot server/main.ts",
"build:server": "NODE_ENV=production bun build server/main.ts --target=bun --outfile=dist/server/main.js",
"build": "bun run build:server",
"publish": "cat app.json | deco registry publish -w /shared/deco -y",
"check": "tsc --noEmit"
},
"dependencies": {
"@ai-sdk/provider": "^3.0.2",
"@ai-sdk/provider-utils": "^4.0.4",
"@decocms/bindings": "^1.0.7",
"@decocms/runtime": "^1.1.3",
"@openrouter/ai-sdk-provider": "^1.5.4",
"@openrouter/sdk": "^0.3.11",
"ai": "^6.0.3",
"zod": "^4.0.0"
},
"devDependencies": {
"@cloudflare/vite-plugin": "^1.13.4",
"@cloudflare/workers-types": "^4.20251014.0",
"@decocms/mcps-shared": "1.0.0",
"@decocms/openrouter": "1.0.0",
"@mastra/core": "^0.24.0",
"@modelcontextprotocol/sdk": "1.25.1",
"@types/mime-db": "^1.43.6",
"deco-cli": "^0.28.0",
"typescript": "^5.7.2",
"vite": "7.2.0",
"wrangler": "^4.28.0"
},
"engines": {
"node": ">=22.0.0"
}
}
104 changes: 104 additions & 0 deletions deco-llm/server/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
/**
* OpenRouter MCP Server
*
* This MCP provides tools for interacting with OpenRouter's API,
* including model discovery, comparison, and AI chat completions.
*
* OpenRouter offers a unified API for accessing hundreds of AI models
* with built-in fallback mechanisms, cost optimization, and provider routing.
*/
import type { Registry } from "@decocms/mcps-shared/registry";
import { serve } from "@decocms/mcps-shared/serve";
import { tools } from "@decocms/openrouter/tools";
import { BindingOf, type DefaultEnv, withRuntime } from "@decocms/runtime";
import { z } from "zod";
import { calculatePreAuthAmount, toMicrodollars } from "./usage";

export const StateSchema = z.object({
WALLET: BindingOf("@deco/wallet"),
});

/**
* Environment type combining Deco bindings and Cloudflare Workers context
*/
export type Env = DefaultEnv<typeof StateSchema, Registry>;

interface OpenRouterUsageReport {
providerMetadata: {
openrouter: {
usage: {
cost: number;
};
};
};
}
const isOpenRouterUsageReport = (
usage: unknown | OpenRouterUsageReport,
): usage is OpenRouterUsageReport => {
return (
typeof usage === "object" &&
usage !== null &&
"providerMetadata" in usage &&
typeof usage.providerMetadata === "object" &&
usage.providerMetadata !== null &&
"openrouter" in usage.providerMetadata &&
typeof usage.providerMetadata.openrouter === "object" &&
usage.providerMetadata.openrouter !== null &&
"usage" in usage.providerMetadata.openrouter &&
typeof usage.providerMetadata.openrouter.usage === "object" &&
usage.providerMetadata.openrouter.usage !== null &&
"cost" in usage.providerMetadata.openrouter.usage
);
};

const runtime = withRuntime<
DefaultEnv<typeof StateSchema, Registry>,
typeof StateSchema,
Registry
>({
tools: (env) => {
return tools(env, {
start: async (modelInfo, params) => {
const amount = calculatePreAuthAmount(modelInfo, params);

const { id } =
await env.MESH_REQUEST_CONTEXT.state.WALLET.PRE_AUTHORIZE_AMOUNT({
amount,
metadata: {
modelId: modelInfo.id,
params: params,
},
});
return {
end: async (usage) => {
if (!isOpenRouterUsageReport(usage)) {
throw new Error("Usage cost not found");
}
const vendorId = process.env.WALLET_VENDOR_ID ?? "deco";
await env.MESH_REQUEST_CONTEXT.state.WALLET.COMMIT_PRE_AUTHORIZED_AMOUNT(
{
identifier: id,
contractId:
env.MESH_REQUEST_CONTEXT.connectionId ??
env.MESH_REQUEST_CONTEXT.state.WALLET.value,
vendorId,
amount: toMicrodollars(
usage.providerMetadata.openrouter.usage.cost,
),
},
);
},
};
},
});
},
configuration: {
state: StateSchema,
scopes: [
"WALLET::PRE_AUTHORIZE_AMOUNT",
"WALLET::COMMIT_PRE_AUTHORIZED_AMOUNT",
],
},
});

serve(runtime.fetch);
Loading