Company Skills Gateway

Company Skills Gateway

This MCP server reads team SKILL.md files from a local folder and returns relevant ones to Cursor, while recording usage in a local SQLite database.

Category
Visit Server

README

Company Skills Gateway

This is a deliberately small MCP server for a small engineering team. It does two things:

  1. Reads team SKILL.md files from a folder and returns the relevant ones to Cursor.
  2. Records who requested guidance and which skill versions were returned in a local SQLite file.

There is no PostgreSQL, Alembic, ORM, Docker requirement, OIDC provider, webhook, polling loop, scheduled updater, metrics stack, admin framework, or signed client release pipeline.

How it works

  • Put each skill at sample-skill-catalog/<skill-name>/SKILL.md.
  • Cursor calls company-skills.prepare_context over Streamable HTTP.
  • The server reads the files on that request, so saved edits are live immediately.
  • A deterministic matcher uses repository, path, language, framework, task kind, and keywords.
  • One row is written to company-skills.db with the developer, repository, result, and exact skill names, versions, and hashes.

The server does not store task summaries, source code, branches, paths, secrets, or environment values. A delivery log proves that guidance was returned, not that Cursor followed it.

Requirements

  • uv
  • Python 3.11, installed automatically by uv if necessary
  • On developer PCs: built-in Windows PowerShell 5.1 or newer

Start the shared server

uv sync --frozen
cp .env.example .env.dev
ln -sf .env.dev .env
uv run --env-file .env company-skills-gateway

The defaults listen only on 127.0.0.1:8000. Set SKILLS_HOST=0.0.0.0 on the one machine that will serve the six developers, then use that machine's internal DNS name in the installer.

Check it:

curl http://127.0.0.1:8000/healthz
curl http://127.0.0.1:8000/usage

If SKILLS_API_KEY is set, /mcp and /usage require it:

curl -H "X-Skills-Key: your-shared-key" http://127.0.0.1:8000/usage

Treat this as a simple internal shared key, not a replacement for network access controls. Put the server on the company LAN/VPN and use HTTPS through the reverse proxy you already have if traffic leaves a trusted network.

Install on Windows

From a clone or shared copy of this repository:

powershell -ExecutionPolicy Bypass -File .\installer\Install-CompanySkills.ps1 `
  -McpUrl 'http://skills-box:8000/mcp' `
  -ApiKey 'your-shared-key'

Omit -ApiKey if the server does not set SKILLS_API_KEY. The installer uses $env:USERNAME for usage attribution; override it with -Developer. It only:

  • merges a company-skills entry into ~/.cursor/mcp.json, including the developer header; and
  • copies the small bootstrap skill to ~/.agents/skills/company-skills-bootstrap/SKILL.md.

It does not require administrator rights, PowerShell modules, code-signing certificates, scheduled tasks, workspace scanning, or a separate update process. Server-side skill changes need no client update. Restart Cursor once after installation.

To remove those two entries:

powershell -ExecutionPolicy Bypass -File .\installer\Uninstall-CompanySkills.ps1

Add or change a skill

Copy one of the existing folders and edit its SKILL.md. The useful matching fields are:

---
name: example-skill
description: When this team guidance is useful.
paths: ["**/*.py"]
metadata:
  version: "1.0.0"
  status: active
  languages: [python]
  frameworks: [fastapi]
  repo_patterns: ["engineering/*"]
  task_kinds: [implementation, review]
  trigger_keywords: [api, endpoint]
  priority: 50
  always_include: false
---

Then validate the whole directory:

uv run company-skills-catalog sample-skill-catalog

Unknown metadata is ignored on purpose, which makes experiments cheap. A malformed skill name, frontmatter block, or body makes /healthz fail visibly instead of silently serving stale content.

Running

Command What it does
uv run --env-file .env company-skills-gateway Runs the MCP service and usage endpoint.
uv run company-skills-catalog sample-skill-catalog Validates and lists the current skills.
uv run pytest --cov Runs all tests and the coverage ratchet.
uv run ruff check . Runs lint checks.
uv run basedpyright Runs type checks.

Code map

  • config.py — seven environment-backed settings.
  • catalog.py — skill parsing and deterministic matching.
  • usage.py — one SQLite table and one report.
  • main.py — the MCP tool, three HTTP routes, and optional shared-key check.
  • installer/ — one install script and one uninstall script.

SQLite is intentionally the operational interface too. If you want an ad hoc report, use the /usage JSON or open company-skills.db with any SQLite browser. If the team eventually outgrows one process and one disk, that is the point to reconsider a shared database—not before.

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
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
Qdrant Server

Qdrant Server

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

Official
Featured