Skip to main content

Universal prompt loader MCP server

Project description

Shinkuro - Universal prompt loader MCP server

PyPI - Version Codecov

Loads markdown files from a local folder or git repository and serves them as MCP Prompts.

Useful for loading prompts from various sources and formats into your MCP-enabled applications, and sharing prompts across organizations.

Usage

IMPORTANT: make sure your MCP client supports the MCP Prompts capability. See the feature support matrix.

Full CLI Usage

uvx shinkuro --help
 Usage: shinkuro [OPTIONS]

 Shinkuro - Universal prompt loader MCP server

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --folder              TEXT            Path to local folder containing markdown files, or subfolder within git repo [env var: FOLDER] │
│ --git-url             TEXT            Git repository URL (supports GitHub, GitLab, SSH, HTTPS with credentials) [env var: GIT_URL]   │
│ --cache-dir           TEXT            Directory to cache remote repositories [env var: CACHE_DIR] [default: ~/.shinkuro/remote]      │
│ --auto-pull                           Whether to refresh local cache on startup [env var: AUTO_PULL]                                 │
│ --variable-format     [brace|dollar]  Template variable format [env var: VARIABLE_FORMAT] [default: brace]                           │
│ --auto-discover-args                  Auto-discover template variables as required arguments [env var: AUTO_DISCOVER_ARGS]           │
│ --skip-frontmatter                    Skip frontmatter processing and use raw markdown content [env var: SKIP_FRONTMATTER]           │
│ --version                             Show version and exit                                                                          │
│ --help                                Show this message and exit.                                                                    │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Local Files

Add to your MCP client configuration:

{
  "mcpServers": {
    "shinkuro": {
      "command": "uvx",
      "args": ["shinkuro"],
      "env": {
        "FOLDER": "/path/to/prompts"
      }
    }
  }
}

Remote Git Repository

Add to your MCP client configuration:

{
  "mcpServers": {
    "shinkuro": {
      "command": "uvx",
      "args": ["shinkuro"],
      "env": {
        "GIT_URL": "https://github.com/owner/repo.git",
        "FOLDER": "prompts" // optional, subfolder within git repo
      }
    }
  }
}

This will clone the repository into a local cache dir. Make sure you have correct permission.

Private repositories are supported, e.g. "GIT_URL": "git@github.com:DiscreteTom/shinkuro.git" (with SSH keys), "GIT_URL": "https://<username>:<PAT>@github.com/owner/repo.git" (with personal access token)

Use with Spec-Kit

Expand

First, move spec-kit prompts into ./.shinkuro/prompts folder.

Then add to your MCP client configuration:

{
  "mcpServers": {
    "shinkuro": {
      "command": "uvx",
      "args": ["shinkuro"],
      "env": {
        "FOLDER": "./.shinkuro/prompts",
        "VARIABLE_FORMAT": "dollar",
        "AUTO_DISCOVER_ARGS": "true",
        "SKIP_FRONTMATTER": "true"
      }
    }
  }
}

This will expose spec-kit instructions as MCP prompts.

Prompt Loading

Each markdown file in the specified folder (including nested folders) is loaded as a prompt.

Example folder structure:

my-prompts/
├── think.md
└── dev/
     ├── code-review.md
     └── commit.md

The example above will be loaded to 3 prompts: think, code-review and commit.

Example Prompt Files

Simplest

Commit to git using conventional commit.

Prompt with Metadata

---
name: "code-review" # optional, defaults to filename
title: "Code Review Assistant" # optional, defaults to filename
description: "" # optional, defaults to file path
---

# Code Review

Please review this code for best practices and potential issues.

Prompt with Arguments

---
name: "greeting"
description: "Generate a personalized greeting message"
arguments:
  - name: "user"
    description: "Name of the user"
    # no default = required parameter
  - name: "project"
    description: "Project name"
    default: "MyApp"
---

Say: Hello {user}! Welcome to {project}. Hope you enjoy your stay!

Variables like {user} and {project} will be replaced with actual values when the prompt is retrieved.

Use {{var}} (double brackets) to escape and display literal brackets when using brace formatter.

Different Variable Formats:

  • brace (default): {user}, {project}
  • dollar: $user, $project

Example Prompt Repositories

CHANGELOG

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shinkuro-0.3.5.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shinkuro-0.3.5-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file shinkuro-0.3.5.tar.gz.

File metadata

  • Download URL: shinkuro-0.3.5.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shinkuro-0.3.5.tar.gz
Algorithm Hash digest
SHA256 da4832fe3ded0bc56140a5b50b5fece89ba008f050afbbbbc63b5f0ec735e4fc
MD5 6feee9fc266540b92750bc09b3906fde
BLAKE2b-256 a752bbe2832935e557247abd76235416f2312145d7e5d6cec8ef1fa85fddfdc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for shinkuro-0.3.5.tar.gz:

Publisher: publish.yml on DiscreteTom/shinkuro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shinkuro-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: shinkuro-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shinkuro-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7208c9d3865560ff1d15456a85ce25de1aa2f1ae71a0efb68be44bb8b74f2dea
MD5 c11be391cb4a0dc34112137844779c94
BLAKE2b-256 24d9b3a66826d5b0b49c984065c6396b918c12893a5ff28617aaca8cf632165d

See more details on using hashes here.

Provenance

The following attestation bundles were made for shinkuro-0.3.5-py3-none-any.whl:

Publisher: publish.yml on DiscreteTom/shinkuro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page