mcp

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2026 License: MIT

README

Arkestone MCP Servers

CI codecov Go Report Card

Overview

A monorepo hosting Model Context Protocol (MCP) servers for GitHub Copilot customization. Each server implements the MCP specification to dynamically serve different types of Copilot configuration — custom instructions, skills, and more — from local directories and GitHub repositories.

Servers

Server Description Docs
mcp-instructions Serves Copilot custom instructions README
mcp-skills Serves Copilot skills README

Shared Components

  • pkg/optimizer — OpenAI-compatible LLM optimization layer shared by all servers. Optionally merges, deduplicates, and consolidates content from multiple sources via any OpenAI-compatible endpoint.
  • pkg/config — Unified configuration loading (YAML → env vars → CLI flags).
  • pkg/github — GitHub Contents API client with proxy and header pass-through.
  • pkg/httputil — Shared HTTP infrastructure: proxy support, custom TLS/CA, header propagation.
  • pkg/syncer — Background periodic sync for remote repositories.
  • pkg/server — MCP server bootstrap helpers.

Quick Start

mcp-instructions
make build-instructions
./bin/mcp-instructions -dirs /path/to/repo
mcp-skills
make build-skills
./bin/mcp-skills -repos github/awesome-copilot

See each server's README for full configuration and usage details.

Architecture

.
├── servers/
│   ├── mcp-instructions/       # mcp-instructions server
│   │   ├── cmd/mcp-instructions/
│   │   └── internal/loader/
│   └── mcp-skills/             # mcp-skills server
│       ├── cmd/mcp-skills/
│       └── internal/scanner/
├── pkg/
│   ├── config/             # shared configuration loading
│   ├── github/             # GitHub Contents API client
│   ├── httputil/           # proxy, TLS, header propagation
│   ├── optimizer/          # shared LLM optimization layer
│   ├── server/             # MCP server helpers
│   └── syncer/             # background sync
├── docs/
│   └── network.md          # network / proxy / firewall guide
├── examples/               # client configuration examples
├── AGENTS.md               # AI coding assistant guide
├── Makefile
├── go.mod
└── go.sum

Each server follows the same layered design:

  1. Config — YAML → environment variables → CLI flags (each layer overrides the previous)
  2. Loader / Scanner — discovers content from local directories and GitHub repositories
  3. Optimizer — optional LLM-based consolidation via pkg/optimizer
  4. MCP Server — exposes content as Resources, Prompts, and Tools over stdio or Streamable HTTP

Development

make build              # build all servers
make test               # run unit tests
make test-integration   # run integration tests
make docker             # build Docker images for all servers
make lint               # run golangci-lint
make cover              # generate coverage report

Configuration

Each server supports configuration via YAML files, environment variables, and CLI flags. See the individual server READMEs for details:

GitHub Authentication (Optional)

A GitHub token is optional. Public repositories work without authentication. For private repositories, provide a token via any of these methods (highest priority first):

Method Example
CLI flag --github-token ghp_xxx
Prefixed env var INSTRUCTIONS_GITHUB_TOKEN=ghp_xxx / SKILLS_GITHUB_TOKEN=ghp_xxx
Global env var GITHUB_TOKEN=ghp_xxx
YAML config github_token: ghp_xxx

When a repository returns HTTP 401/403/404 without a token configured, the error message will hint that authentication may be required.

Network & Proxy

All servers work on-premise, in private/public cloud, with direct internet or through HTTP/HTTPS proxies. See the Network & Proxy Guide for:

  • Firewall rules to open
  • Proxy and custom CA certificate configuration
  • HTTP header pass-through from incoming requests to outbound calls
  • Deployment scenarios (direct, proxy, air-gapped, Kubernetes)

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License — see the LICENSE file for details.

Directories

Path Synopsis
pkg
config
Package config provides unified configuration loading for all MCP servers.
Package config provides unified configuration loading for all MCP servers.
github
Package github provides a client for the GitHub Contents API.
Package github provides a client for the GitHub Contents API.
httputil
Package httputil provides shared HTTP infrastructure for proxy support, custom TLS, and header propagation across all MCP servers.
Package httputil provides shared HTTP infrastructure for proxy support, custom TLS, and header propagation across all MCP servers.
optimizer
Package optimizer uses an OpenAI-compatible LLM endpoint to merge, deduplicate, and consolidate multiple instruction files into a single coherent output.
Package optimizer uses an OpenAI-compatible LLM endpoint to merge, deduplicate, and consolidate multiple instruction files into a single coherent output.
server
Package server provides shared MCP server utilities.
Package server provides shared MCP server utilities.
syncer
Package syncer provides a reusable background sync goroutine.
Package syncer provides a reusable background sync goroutine.
testutil
Package testutil provides shared test helpers across the mcp monorepo.
Package testutil provides shared test helpers across the mcp monorepo.
servers
mcp-adr/internal/scanner
Package scanner provides on-demand access to Architecture Decision Records from local directories and GitHub repositories.
Package scanner provides on-demand access to Architecture Decision Records from local directories and GitHub repositories.
mcp-instructions/internal/loader
Package loader provides on-demand access to Copilot custom instruction files from local directories and GitHub repositories.
Package loader provides on-demand access to Copilot custom instruction files from local directories and GitHub repositories.
mcp-memory/internal/store
Package store provides a file-based persistent memory store.
Package store provides a file-based persistent memory store.
mcp-prompts/internal/loader
Package loader provides on-demand access to Copilot prompt files from local directories and GitHub repositories.
Package loader provides on-demand access to Copilot prompt files from local directories and GitHub repositories.
mcp-skills/internal/scanner
Package scanner provides on-demand access to Copilot skill definitions from local directories and GitHub repositories.
Package scanner provides on-demand access to Copilot skill definitions from local directories and GitHub repositories.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL