secop-mcp-server

secop-mcp-server

An MCP server to query Colombian public procurement data from SECOP I and II in real time, enabling contract research, transparency oversight, and data journalism.

Category
Visit Server

README

SECOP MCP Server

<!-- mcp-name: io.github.juandavidsernav/secop-mcp-server -->

Servidor MCP (Model Context Protocol) para consultar la contratación pública de Colombia a través de SECOP I y SECOP II.

Los datos se obtienen en tiempo real desde datos.gov.co (API SODA de Socrata) y son 100% públicos. No se almacena ningún dato localmente.

¿Para qué sirve?

Este servidor permite que modelos de lenguaje como Claude consulten directamente los datos de contratación pública del Estado colombiano. Esto facilita:

  • Control político: Investigar contratos de entidades públicas y funcionarios.
  • Transparencia: Verificar contratistas, montos y modalidades de contratación.
  • Periodismo de datos: Cruzar información de proveedores y entidades.
  • Veeduría ciudadana: Cualquier persona puede consultar cómo se gastan los recursos públicos.

Datasets disponibles

Dataset Descripción Fuente
SECOP I - Procesos Datos históricos de procesos de compra pública datos.gov.co
SECOP II - Procesos Procesos de contratación transaccionales datos.gov.co
SECOP II - Contratos Contratos electrónicos con valores pagados/facturados datos.gov.co
SECOP II - Proveedores Proveedores registrados en la plataforma datos.gov.co

Herramientas (Tools)

Tool Descripción
buscar_secop1 Buscar procesos en SECOP I por entidad, contratista, objeto, departamento, rango de fechas, etc.
buscar_procesos_secop2 Buscar procesos de contratación en SECOP II con filtros temporales
buscar_contratos_secop2 Buscar contratos electrónicos en SECOP II con filtros temporales
buscar_proveedores Buscar proveedores registrados en SECOP II
buscar_por_persona Buscar en TODOS los datasets por cédula/NIT o nombre de una persona
resumen_contratacion Vista condensada de contratos (campos clave: entidad, proveedor, valor, estado, fecha)
agregaciones_contratacion Totales agrupados por proveedor, entidad, departamento o modalidad
consulta_libre Consulta SoQL avanzada sobre cualquier dataset
listar_datasets Ver todos los datasets y sus campos disponibles

Instalación

Requisitos

  • Python 3.11+
  • uv (recomendado) o pip

Opción 1: Desde PyPI (recomendada)

# Con uv (más rápido)
uvx secop-mcp-server

# Con pip
pip install secop-mcp-server

Opción 2: Desde GitHub

uvx --from git+https://github.com/juandavidsernav/secop-mcp-server secop-mcp

Opción 3: Desde el código fuente

git clone https://github.com/juandavidsernav/secop-mcp-server.git
cd secop-mcp-server
uv sync

Configuración

Claude Code

# Instalación rápida desde PyPI
claude mcp add secop-colombia -- uvx secop-mcp-server

# O desde código fuente
claude mcp add secop-colombia -- uv run --directory /ruta/al/secop-mcp-server secop-mcp

Claude Desktop

Edita el archivo de configuración:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "secop-colombia": {
      "command": "uvx",
      "args": ["secop-mcp-server"]
    }
  }
}

App Token (opcional pero recomendado)

Sin token funciona, pero con rate-limiting agresivo (~60 peticiones/hora). Obtén uno gratis:

  1. Regístrate en datos.gov.co
  2. Ve a tu perfil > Developer Settings
  3. Crea un nuevo App Token

Configúralo como variable de entorno:

{
  "mcpServers": {
    "secop-colombia": {
      "command": "uvx",
      "args": ["secop-mcp-server"],
      "env": {
        "SOCRATA_APP_TOKEN": "tu-token-aqui"
      }
    }
  }
}

Ejemplos de uso

Una vez configurado, puedes pedirle a Claude cosas como:

  • "Busca los contratos de la Alcaldía de Bogotá por más de 1000 millones"
  • "¿Qué contratos tiene la persona con cédula 12345678?"
  • "Muestra los procesos de licitación pública en Antioquia"
  • "¿Cuáles son los contratos más grandes de SECOP II este año?"
  • "Busca todos los contratos asociados a la empresa XYZ"
  • "¿Cuánto ha contratado el municipio de Medellín en prestación de servicios?"
  • "Dame un resumen de los contratos de EPM en 2024"
  • "¿Cuáles son los proveedores con más contratos en Antioquia?"
  • "Agrupa por modalidad los contratos de la Alcaldía de Medellín"
  • "Muestra los contratos firmados entre enero y marzo de 2025 en el Valle del Cauca"

Estructura del proyecto

secop-mcp-server/
├── secop_mcp/
│   ├── __init__.py    # Documentación del paquete
│   ├── server.py      # Servidor MCP y definición de herramientas (tools)
│   ├── client.py      # Cliente HTTP para la API SODA de Socrata
│   └── datasets.py    # Catálogo de datasets SECOP y sus metadatos
├── pyproject.toml     # Configuración del paquete Python
├── LICENSE            # Licencia MIT
└── README.md          # Este archivo

¿Cómo funciona?

Claude (LLM) <--MCP/stdio--> secop-mcp-server <--HTTP/SoQL--> datos.gov.co (API SODA)
  1. Claude invoca una herramienta MCP (ej: buscar_contratos_secop2).
  2. El servidor construye una consulta SoQL con los filtros proporcionados.
  3. Se ejecuta la petición HTTP a la API de datos.gov.co.
  4. Los resultados se formatean en texto legible y se retornan a Claude.
  5. Claude analiza los datos y responde al usuario.

Todo corre localmente en tu máquina. No hay servidor intermedio ni se almacenan datos.

Contribuir

Las contribuciones son bienvenidas:

  1. Fork del repositorio
  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit de tus cambios (git commit -m 'Agrega nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

Ideas para contribuir

  • Agregar más datasets de datos.gov.co
  • Traducciones del README
  • Alertas o monitoreo de nuevos contratos
  • Exportación a CSV/Excel

Licencia

MIT - Libre para uso personal, comercial, modificación y redistribución.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured