Cada servidor MCP que conecta agrega descripciones de herramientas a su ventana contextual de LLM. Una configuración global con 10 servidores podría agregar más de 5000 tokens de descripciones de herramientas a cada solicitud, incluso cuando el agente solo necesita realizar una búsqueda. Las configuraciones de MCP con ámbito de proyecto cargan solo las herramientas que cada proyecto necesita. Este tutorial muestra cómo configurar el servidor Scavio MCP (mcp.scavio.dev/mcp) por proyecto para que solo pague por los tokens de contexto que realmente usa.
Requisitos previos
- Un cliente compatible con MCP (Claude Desktop, Cursor o Cline)
- Una clave API de Scavio de scavio.dev
- Conocimientos básicos de configuración JSON
- Al menos dos proyectos que necesitan diferentes conjuntos de herramientas
Guia paso a paso
Paso 1: Audite el uso actual de su token MCP
Verifique cuántos servidores MCP ha configurado globalmente. Cada servidor agrega descripciones de herramientas que consumen tokens de contexto en cada solicitud.
# Check your current MCP configuration
import json, os
# Common MCP config locations
config_paths = [
os.path.expanduser('~/.config/claude/claude_desktop_config.json'),
os.path.expanduser('~/.cursor/mcp.json'),
'.mcp.json', # Project-level
]
for path in config_paths:
if os.path.exists(path):
with open(path) as f:
config = json.load(f)
servers = config.get('mcpServers', {})
print(f'{path}:')
print(f' Servers: {len(servers)}')
for name, cfg in servers.items():
print(f' - {name}')
# Estimate token cost (rough: ~200 tokens per tool description)
est_tools = len(servers) * 5 # ~5 tools per server average
est_tokens = est_tools * 200
print(f' Estimated tool description tokens: ~{est_tokens}')
else:
print(f'{path}: not found')Paso 2: Crear configuraciones de MCP con ámbito de proyecto
En lugar de una configuración global, cree archivos .mcp.json por proyecto que solo incluyan los servidores que necesita cada proyecto.
import json
def create_project_mcp(project_path: str, servers: dict, description: str = ''):
"""Create a project-scoped MCP configuration."""
config = {'mcpServers': servers}
config_path = os.path.join(project_path, '.mcp.json')
with open(config_path, 'w') as f:
json.dump(config, f, indent=2)
tool_count = len(servers)
est_tokens = tool_count * 5 * 200
print(f'Created {config_path}')
print(f' Servers: {tool_count}')
print(f' Est. token overhead: ~{est_tokens}')
if description:
print(f' Purpose: {description}')
# Project 1: E-commerce research - needs search only
create_project_mcp('/projects/ecommerce-research', {
'scavio': {
'url': 'https://mcp.scavio.dev/mcp',
'headers': {'Authorization': 'Bearer ${SCAVIO_API_KEY}'}
}
}, 'E-commerce product research with multi-platform search')
# Project 2: Content pipeline - needs search + file tools
create_project_mcp('/projects/content-pipeline', {
'scavio': {
'url': 'https://mcp.scavio.dev/mcp',
'headers': {'Authorization': 'Bearer ${SCAVIO_API_KEY}'}
},
'filesystem': {
'command': 'npx',
'args': ['-y', '@modelcontextprotocol/server-filesystem', '/projects/content-pipeline/output']
}
}, 'Content generation with search grounding')Paso 3: Comparar los costos de los tokens globales con los de alcance
Calcule los ahorros simbólicos a partir del alcance. Un proyecto que solo necesita búsqueda ahorra miles de tokens por solicitud en comparación con una configuración global con 10 servidores.
def compare_token_costs(global_servers: int, scoped_servers: int,
avg_tools_per_server: int = 5,
tokens_per_tool: int = 200,
requests_per_day: int = 100) -> dict:
global_tokens = global_servers * avg_tools_per_server * tokens_per_tool
scoped_tokens = scoped_servers * avg_tools_per_server * tokens_per_tool
savings_per_request = global_tokens - scoped_tokens
daily_savings = savings_per_request * requests_per_day
# At ~$3/1M input tokens (GPT-4o rate)
cost_per_token = 3.0 / 1_000_000
monthly_savings = daily_savings * 30 * cost_per_token
return {
'global_tokens_per_request': global_tokens,
'scoped_tokens_per_request': scoped_tokens,
'savings_per_request': savings_per_request,
'daily_token_savings': daily_savings,
'monthly_cost_savings': monthly_savings,
}
# Scenario: global has 10 servers, project only needs 1 (Scavio)
result = compare_token_costs(global_servers=10, scoped_servers=1)
print('Token Savings Analysis')
print('=' * 40)
print(f'Global config: {result["global_tokens_per_request"]:,} tokens/request')
print(f'Scoped config: {result["scoped_tokens_per_request"]:,} tokens/request')
print(f'Savings: {result["savings_per_request"]:,} tokens/request')
print(f'Daily savings: {result["daily_token_savings"]:,} tokens')
print(f'Monthly cost savings: ${result["monthly_cost_savings"]:.2f}')Paso 4: Configurar el servidor Scavio MCP para un proyecto
Cree un .mcp.json mínimo que solo configure el servidor MCP de búsqueda de Scavio. Esto le da al proyecto acceso a 6 plataformas con una sobrecarga mínima de tokens.
# Minimal Scavio-only MCP config for any project
scavio_only_config = {
'mcpServers': {
'scavio': {
'url': 'https://mcp.scavio.dev/mcp',
'headers': {
'Authorization': 'Bearer ${SCAVIO_API_KEY}'
}
}
}
}
def setup_scavio_mcp(project_dir: str):
config_path = os.path.join(project_dir, '.mcp.json')
with open(config_path, 'w') as f:
json.dump(scavio_only_config, f, indent=2)
print(f'Scavio MCP configured at {config_path}')
print(f'Platforms available: Google, Amazon, YouTube, Walmart, Reddit, TikTok')
print(f'Endpoint: mcp.scavio.dev/mcp')
print(f'Cost: $0.005 per search credit')
print(f'Token overhead: ~1,000 tokens (vs ~10,000 with 10 global servers)')
# Setup for multiple projects
for project in ['ecommerce-tool', 'content-agent', 'research-bot']:
project_path = f'/projects/{project}'
if os.path.isdir(project_path):
setup_scavio_mcp(project_path)
else:
print(f'Would configure: {project_path}/.mcp.json')Ejemplo en Python
import json, os
def create_scavio_mcp(project_dir):
config = {'mcpServers': {'scavio': {
'url': 'https://mcp.scavio.dev/mcp',
'headers': {'Authorization': 'Bearer ${SCAVIO_API_KEY}'}
}}}
path = os.path.join(project_dir, '.mcp.json')
with open(path, 'w') as f:
json.dump(config, f, indent=2)
print(f'Created {path}')
print(f' 1 server, ~1,000 token overhead')
print(f' 6 platforms: Google, Amazon, YouTube, Walmart, Reddit, TikTok')
create_scavio_mcp('.')Ejemplo en JavaScript
const fs = require('fs');
const path = require('path');
function createScavioMcp(projectDir) {
const config = { mcpServers: { scavio: {
url: 'https://mcp.scavio.dev/mcp',
headers: { Authorization: 'Bearer ${SCAVIO_API_KEY}' }
}}};
const configPath = path.join(projectDir, '.mcp.json');
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
console.log(`Created ${configPath}`);
console.log(' 1 server, ~1,000 token overhead');
console.log(' 6 platforms: Google, Amazon, YouTube, Walmart, Reddit, TikTok');
}
createScavioMcp('.');Salida esperada
Token Savings Analysis
========================================
Global config: 10,000 tokens/request
Scoped config: 1,000 tokens/request
Savings: 9,000 tokens/request
Daily savings: 900,000 tokens
Monthly cost savings: $81.00
Scavio MCP configured at /projects/ecommerce-tool/.mcp.json
Platforms available: Google, Amazon, YouTube, Walmart, Reddit, TikTok
Endpoint: mcp.scavio.dev/mcp
Cost: $0.005 per search credit
Token overhead: ~1,000 tokens (vs ~10,000 with 10 global servers)Tutoriales relacionados
- Cómo auditar el uso del token MCP y los costos de descripción de la herramienta
- Cómo agregar búsqueda en tiempo real a Claude a través de MCP
- Cómo determinar el alcance del acceso a los datos de los agentes para obtener mejores resultados
- Cómo agregar datos en vivo multiplataforma a cualquier agente de IA