@yigstudio/skill-github
v0.1.0
Published
GitHub integration skill for Yigstudio (MCP Server)
Downloads
44
Readme
@yigstudio/skill-github
GitHub integration skill for Yigstudio (MCP Server).
Features
Provides 4 GitHub tools:
github.createIssue- Create GitHub issuesgithub.listPRs- List pull requestsgithub.searchCode- Search code in repositoriesgithub.getFileContent- Get file contents
Installation
npm install @yigstudio/skill-githubUsage
As MCP Server
Run as a standalone MCP server:
export GITHUB_TOKEN="your-github-token"
npx @yigstudio/skill-githubWith Yigstudio
Register in your Yigstudio application:
import { MCPClientManager } from '@yigstudio/mcp-runtime';
import { SkillRegistry } from '@yigstudio/skills';
const mcpClient = new MCPClientManager();
const skillRegistry = new SkillRegistry();
// Register GitHub skill
await mcpClient.registerServer({
id: 'skill-github',
name: 'GitHub Skill',
transport: {
type: 'stdio',
command: 'npx',
args: ['@yigstudio/skill-github'],
env: {
GITHUB_TOKEN: process.env.GITHUB_TOKEN ?? '',
},
},
});
// Register skill metadata
skillRegistry.register({
id: 'github-create-issue',
name: 'Create GitHub Issue',
description: 'Create a GitHub issue',
version: '1.0.0',
permissions: ['github:write'],
mcpServer: {
serverId: 'skill-github',
command: 'npx',
args: ['@yigstudio/skill-github'],
env: {
GITHUB_TOKEN: process.env.GITHUB_TOKEN ?? '',
},
},
});Tools
github.createIssue
Create a new issue in a GitHub repository.
Parameters:
owner(string, required): Repository ownerrepo(string, required): Repository nametitle(string, required): Issue titlebody(string, optional): Issue body (markdown)labels(string[], optional): Labels to addassignees(string[], optional): Assignees
Example:
{
"owner": "Henghenggao",
"repo": "Yigstudio",
"title": "Add new feature",
"body": "This is a feature request",
"labels": ["enhancement"],
"assignees": ["username"]
}github.listPRs
List pull requests in a repository.
Parameters:
owner(string, required): Repository ownerrepo(string, required): Repository namestate(string, optional): PR state (open/closed/all, default: open)per_page(number, optional): Results per page (default: 30)page(number, optional): Page number (default: 1)
github.searchCode
Search code across GitHub repositories.
Parameters:
query(string, required): Search queryowner(string, optional): Repository owner filterrepo(string, optional): Repository name filterper_page(number, optional): Results per page (default: 30)page(number, optional): Page number (default: 1)
Example:
{
"query": "function initializeAgent",
"owner": "Henghenggao",
"repo": "Yigstudio"
}github.getFileContent
Get the content of a file from a repository.
Parameters:
owner(string, required): Repository ownerrepo(string, required): Repository namepath(string, required): File pathref(string, optional): Branch/tag/commit SHA
Example:
{
"owner": "Henghenggao",
"repo": "Yigstudio",
"path": "README.md",
"ref": "main"
}Environment Variables
GITHUB_TOKEN(required): GitHub Personal Access Token
Permissions
github:read: List PRs, search code, get file contentgithub:write: Create issues
License
MIT
