Metadata-Version: 2.4
Name: shinkuro
Version: 0.2.0
Summary: Prompt synchronization MCP server
Project-URL: Homepage, https://github.com/DiscreteTom/shinkuro
Project-URL: Repository, https://github.com/DiscreteTom/shinkuro
Project-URL: Issues, https://github.com/DiscreteTom/shinkuro/issues
Author-email: DiscreteTom <discrete_tom@outlook.com>
License: MIT
License-File: LICENSE
Keywords: mcp,model-context-protocol,prompt
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.13
Requires-Dist: fastmcp>=2.12.4
Requires-Dist: gitpython>=3.1.0
Requires-Dist: giturlparse>=0.12.0
Requires-Dist: python-frontmatter>=1.1.0
Description-Content-Type: text/markdown

# Shinkuro - Prompt synchronization MCP server

![PyPI - Version](https://img.shields.io/pypi/v/shinkuro)

Loads markdown files from a local folder or GitHub repository and serves them as [prompts](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts).

## Usage

### Local Files

Add to your MCP client configuration:

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

### Git Repository

Add to your MCP client configuration:

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

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

### Environment Variables

- `FOLDER`: Path to local folder containing markdown files, or subfolder within git repo
- `GIT_URL`: Git repository URL (supports GitHub, GitLab, SSH, HTTPS with credentials)
- `CACHE_DIR`: Directory to cache cloned repositories (optional, defaults to `~/.shinkuro/remote`)
- `AUTO_PULL`: Whether to pull latest changes if repo exists locally (optional, defaults to `false`)

## Prompts

### Loading

Each markdown file in the specified folder is loaded as a prompt.

Example folder structure:

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

### Example Prompt File

```markdown
---
name: "" # optional, defaults to filename
description: "" # optional, defaults to file path
---

# Prompt Content

Your prompt content here...
```
