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 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.4.tar.gz (12.4 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.4-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: shinkuro-0.3.4.tar.gz
  • Upload date:
  • Size: 12.4 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.4.tar.gz
Algorithm Hash digest
SHA256 b23f5e74f155a62756683bd173ef325a8ccadf4ba2092f3b3eae2a119f7e44ba
MD5 7c117876a8eedc34e1651682aacf4893
BLAKE2b-256 1d2f48b95770801bea8ef7e37fa9df473e636986179dfc7c7951bcf494ed0ad7

See more details on using hashes here.

Provenance

The following attestation bundles were made for shinkuro-0.3.4.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.4-py3-none-any.whl.

File metadata

  • Download URL: shinkuro-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 12.8 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1c4a1ee74a063020ffb54c3998a2d3f540cffaa26f35b517f9692bbbb3b335a9
MD5 184426963060efce189e48b3cc61e540
BLAKE2b-256 ee6ef5d18f39fb28646590fc3aed596d61b44dfdfe1002d0395b4aaeaae63752

See more details on using hashes here.

Provenance

The following attestation bundles were made for shinkuro-0.3.4-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