Skip to main content

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

Metadata

Release files for shinkuro 0.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shinkuro 0.3.5
File Size Uploaded
shinkuro-0.3.5.tar.gz 12.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shinkuro 0.3.5
File Interpreter ABI Platform
shinkuro-0.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 25.7 kB

Release files / shinkuro-0.3.5.tar.gz

Download URL shinkuro-0.3.5.tar.gz
Size 12.7 kB
Tags Source
SHA-256 checksum
How to use checksums
da4832fe3ded0bc56140a5b50b5fece89ba008f050afbbbbc63b5f0ec735e4fc
BLAKE2b-256 checksum
How to use checksums
a752bbe2832935e557247abd76235416f2312145d7e5d6cec8ef1fa85fddfdc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2025.

Transparency log

Release files / shinkuro-0.3.5-py3-none-any.whl

Download URL shinkuro-0.3.5-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7208c9d3865560ff1d15456a85ce25de1aa2f1ae71a0efb68be44bb8b74f2dea
BLAKE2b-256 checksum
How to use checksums
24d9b3a66826d5b0b49c984065c6396b918c12893a5ff28617aaca8cf632165d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.5 This release

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page