Skip to main content
Glama
gilfreund

mcp-tools

by gilfreund

mcp-tools

MCP (Model Context Protocol) servers for Forgejo and NetBox, packaged as standalone tools for any MCP-compatible client (Kiro, Cursor, Claude Desktop, etc.) and as CLI utilities for scripting and automation.

Packages

Package

Description

@mcp-tools/core

Shared library — credential providers, config loading, HTTP client, write guard, logging

forgejo-mcp-server

MCP server + CLI for Forgejo/Gitea API (issues, PRs, branches, releases, webhooks, project boards)

netbox-mcp-server

MCP server + CLI for NetBox API (devices, IPs, VMs, services, cables, journals)

authentik-mcp-server

MCP server for Authentik API (users, groups, applications, providers, tokens)

couchdb-mcp-server

MCP server for CouchDB API (databases, users, permissions, replication, compaction)

Quick Start

Install

# Run directly with npx (no install required)
npx forgejo-mcp-server --config ./forgejo-config.yaml
npx netbox-mcp-server --config ./netbox-config.yaml

# Or install globally
npm install -g forgejo-mcp-server netbox-mcp-server

Configure

Create a config file (YAML or JSON):

# forgejo-config.yaml
baseUrl: "https://your-forgejo-instance.example.com/api/v1"
credentialProvider:
  type: keepassxc       # or: env, file
  settings:
    databasePath: "/path/to/your.kdbx"
    keyfilePath: "/path/to/keyfile"
credentialId: "path/to/api-token"
logLevel: error
defaultOwner: "myorg"
defaultRepo: "myrepo"

Environment variables can override config file values:

Variable

Overrides

MCP_CONFIG_PATH

Config file location

MCP_BASE_URL

baseUrl

MCP_CREDENTIAL_PROVIDER

credentialProvider.type

MCP_CREDENTIAL_ID

credentialId

MCP_LOG_LEVEL

logLevel

Register with an MCP Client

Kiro / Claude Desktop (mcp.json):

{
  "mcpServers": {
    "forgejo": {
      "command": "npx",
      "args": ["forgejo-mcp-server", "--config", "/path/to/forgejo-config.yaml"]
    },
    "netbox": {
      "command": "npx",
      "args": ["netbox-mcp-server", "--config", "/path/to/netbox-config.yaml"]
    }
  }
}

CLI Mode

Each server doubles as a standalone CLI tool:

# List open issues
forgejo-mcp-server cli list_issues --state open

# Get a device from NetBox
netbox-mcp-server cli get_device --id 42

# Human-readable table output
forgejo-mcp-server cli list_repos --format table

# Write operations require --allow-write
forgejo-mcp-server cli create_issue --title "New issue" --allow-write

Non-Destructive Mode

All write operations are blocked by default. Each write tool requires an explicit allow_write: true parameter (MCP) or --allow-write flag (CLI) per call. There is no global override — this ensures safety even in shared agent environments.

Credential Providers

Provider

Config type

How it resolves credentials

KeePassXC

keepassxc

Spawns keepassxc-cli with configured DB and keyfile/password

Environment

env

Maps credential ID to uppercase env var

File

file

Reads basePath/<credentialId> from disk

macOS Keychain

keychain

Uses security find-generic-password

Docker Secrets

docker-secrets

Reads from /run/secrets/

Bitwarden

bitwarden

Uses bw get password <item>

Providers can be chained with priority ordering — first successful resolve wins:

credentialProvider:
  - type: env
    settings: { prefix: "FORGEJO_" }
  - type: keepassxc
    settings: { databasePath: "~/secrets.kdbx", keyfilePath: "~/.key" }

Platform Support

  • Runtime: Node.js 20+

  • OS: macOS, Linux, Windows

  • MCP Clients: Any client supporting stdio transport (Kiro, Cursor, Claude Desktop, etc.)

Development

# Install dependencies
npm install

# Build all packages
npm run build

# Run tests
npm test

# Type-check without emitting
npm run lint

Alternatives

If you only need one of these services, consider these dedicated MCP servers:

Forgejo / Gitea

This project adds: web session support for project board operations, credential provider chain, CLI mode.

NetBox

This project adds: bulk operations, available-IP finder, cable management, journal entries, CLI mode.

Authentik

No dedicated Authentik MCP server exists in the community (as of 2026). This project provides the first one.

CouchDB

This project adds: user/permission management, replication status, database compaction.

AI Disclosure

This project's code and documentation were written with the assistance of LLMs:

  • Perplexity and Abacus — requirements research and API evaluation

  • Kiro (Claude) — spec authoring, implementation, testing, and documentation

All generated code was reviewed, tested (259 tests), and validated against live service instances by the project maintainer.

License

GPL-3.0-or-later

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gilfreund/mcp-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server