SourceSage MCP
๐ SourceSage MCP
๐ ๊ฐ์
SourceSage๋ ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์๋ฆ๋ค์ด ๋งํฌ๋ค์ด ํ์์ผ๋ก ์๊ฐํํ๋ MCP ์๋ฒ์ ๋๋ค. TypeScript๋ก ๊ตฌํ๋์ด ๊ณ ๊ธ ์ฌ์ฉ์ ์ ์ ๋ฐ ์ ์ฐํ ์ ์ธ ํจํด ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ๊ฐ ํ์ผ์ ๋ด์ฉ์ ์๋์ผ๋ก ๋ฌธ์ํํ์ฌ ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ๋ชจ์ต์ ํ์ ํ๊ธฐ ์ฝ๊ฒ ํฉ๋๋ค.
Related MCP server: Simple Files Vector Store Server
๐ฏ ์ฃผ์ ํน์ง
๐ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋งํฌ ๋ค์ด ํ์์ผ๋ก ์ถ๋ ฅ
๐จ ์๋ฆ๋ค์ด ๋๋ฌด ๊ตฌ์กฐ ํ์ (ASCII art)
๐ ํ์ผ ๋ด์ฉ ์๋ ๋ฌธ์ํ(์ธ์ด๋ณ ๊ตฌ๋ฌธ ๊ฐ์กฐํ์ ํฌํจ)
๐ ์ ์ฐํ ์ ์ธ ํจํด(.SourceSageignore)
๐ ES2022 ๋ฐ Node16 ๋ชจ๋ ์์คํ ์ผ๋ก ์ต์ ๊ตฌํ
๐ซ ์๊ฒฉํ ์ ํ ๊ฒ์ฌ๋ก ๋์ ์ ๋ขฐ์ฑ
๐ ๏ธ ๊ธฐ์ ์คํ
๐ท TypeScript (ES2022 ํ๊ฒ)
๐ฆ Model Context Protocol SDK (v0.6.0)
๐ Node.js (Node16 ๋ชจ๋ ์์คํ )
๐ glob (v11.0.0) - ํ์ผ ํจํด ๋งค์นญ
๐ญ ignore (v6.0.2) - ์ ์ฐํ ํ์ผ ์ ์ธ ๊ธฐ๋ฅ
๐ ํ๋ก์ ํธ ๊ตฌ์กฐ
source-sage/
โโโ assets/
โ โโโ header.svg # ใใญใธใงใฏใใใใใผ็ปๅ
โโโ src/
โ โโโ index.ts # ใกใคใณใตใผใใผๅฎ่ฃ
โโโ build/ # ใณใณใใคใซๆธใฟJavaScriptใใกใคใซ
โโโ .gitignore # Gitใฎ้คๅค่จญๅฎ
โโโ .SourceSageignore # SourceSageๅบๆใฎ้คๅค่จญๅฎ
โโโ package.json # ใใญใธใงใฏใ่จญๅฎใปไพๅญ้ขไฟ
โโโ README.md # ใใญใธใงใฏใใใญใฅใกใณใ
โโโ tsconfig.json # TypeScript่จญๅฎโ๏ธ TypeScript ์ค์
{
"compilerOptions": {
"target": "ES2022", // ๆๆฐใฎECMAScriptๆฉ่ฝใๆดป็จ
"module": "Node16", // Node.js 16ใฎๆๆฐใขใธใฅใผใซใทในใใ ใไฝฟ็จ
"moduleResolution": "Node16",
"outDir": "./build", // ใณใณใใคใซๆธใฟใใกใคใซใฎๅบๅๅ
"rootDir": "./src", // ใฝใผในใใกใคใซใฎใซใผใใใฃใฌใฏใใช
"strict": true, // ๅณๆ ผใชๅใใงใใฏใๆๅนๅ
"esModuleInterop": true, // CommonJSใขใธใฅใผใซใจใฎ็ธไบ้็จๆงใ็ขบไฟ
"skipLibCheck": true, // ๅๅฎ็พฉใใกใคใซใฎใใงใใฏใในใญใใ
"forceConsistentCasingInFileNames": true // ใใกใคใซๅใฎๅคงๆๅญๅฐๆๅญใๅณๆ ผใซ็ฎก็
}
}โ๏ธ ์ค์น
npm์์ ์ค์น
npm install -g @sunwood-ai-labs/source-sage-mcp-server์์ค์์ ๋น๋
git clone https://github.com/sunwood-ai-labs/source-sage-mcp-server.git
cd source-sage-mcp-server
npm install
npm run build๐ง ์ฌ์ฉ๋ฒ
MCP ์๋ฒ๋ก ์ค์
MCP ๊ตฌ์ฑ ํ์ผ์ ๋ค์์ ์ถ๊ฐํฉ๋๋ค.
{
"mcpServers": {
"source-sage": {
"command": "node",
"args": ["C:/path/to/source-sage/build/index.js"]
}
}
}๐ฎ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ
generate_structure
ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์์ฑํ๊ณ ํ์ผ ๋ด์ฉ์ ํฌํจํ ์์ธํ ๋ฌธ์๋ฅผ ๋ง๋ญ๋๋ค.
interface GenerateStructureArgs {
// ๆง้ ใ็ๆใใใใฃใฌใฏใใชใฎใใน๏ผๅฟ
้ ๏ผ
// ๅฟ
ใ็ตถๅฏพใในใงๆๅฎใใฆใใ ใใ
path: string;
// .SourceSageignoreใใกใคใซใฎใใน๏ผใชใใทใงใณ๏ผ
// ๆๅฎใใๅ ดๅใฏ็ตถๅฏพใในใงๆๅฎใใฆใใ ใใ
ignorePath?: string;
}์ฌ์ฉ ์
// ็ตถๅฏพใในใงใฎไฝฟ็จ๏ผๆจๅฅจ๏ผ
const result = await mcpClient.callTool('source-sage', 'generate_structure', {
path: 'C:/Users/your-name/path/to/your-project',
ignorePath: 'C:/Users/your-name/path/to/your-project/.SourceSageignore'
});์ถ๋ ฅ ์ํ
์ค์ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ์ถ๋ ฅ ์:
# ๐ Project: source-sage
## ๐ณ ใใฃใฌใฏใใชๆง้
OS: win32
Directory: C:\Users\your-name\source-sage
โโ source-sage/
โโ src/
โ โโ index.ts # MCPใตใผใใผใฎไธป่ฆใชๅฎ่ฃ
โโ package.json # ใใญใธใงใฏใใฎไพๅญ้ขไฟใจ่จญๅฎ
โโ README.md # ใใญใธใงใฏใใฎ่ฉณ็ดฐใช่ชฌๆ
โโ tsconfig.json # TypeScriptใฎใณใณใใคใซ่จญๅฎ์ด ์ถ๋ ฅ์๋ ๋ค์ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
๐ ํ๋ก์ ํธ ์ด๋ฆ ๋ฐ OS ์ ๋ณด
๐ณ ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ ๊ตฌ์กฐ
๐ ๊ฐ ํ์ผ์ ์ญํ ๊ณผ ์ค๋ช
๐ .SourceSageignore๋ก ๋ถํ์ํ ํ์ผ ์ ์ธ
๐ .SourceSageignore ์ค์
ํ๋ก์ ํธ์ ๋ฃจํธ์ .SourceSageignore ํ์ผ์ ๋ง๋ค๊ณ ์ ์ธํ๋ ค๋ ํจํด์ ์ค๋ช
ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ ์ธ ํจํด์ด ํฌํจ๋ฉ๋๋ค.
# ใใผใธใงใณ็ฎก็ใทในใใ ้ข้ฃ
.git
.gitignore
# ใญใฃใใทใฅใใกใคใซ
__pycache__
.pytest_cache
**/__pycache__/**
*.pyc
# ใใซใใป้
ๅธ้ข้ฃ
build
dist
*.egg-info
# ไธๆใใกใคใซใปๅบๅ
output
output.md
test_output
.SourceSageAssets
.SourceSageAssetsDemo
# ใขใปใใ
*.png
*.svg
assets
# ใใฎไป
LICENSE
example
folder
package-lock.json๐ ์ถ๋ ฅ ์
# ๐ Project: my-project
## ๐ณ ใใฃใฌใฏใใชๆง้
OS: win32
Directory: C:\path\to\my-project
โโ my-project/
โโ src/
โ โโ index.ts
โ โโ utils/
โ โโ helper.ts
โโ package.json
## ๐ ใใกใคใซๅ
ๅฎน
### ๐ `src/index.ts`
**Type**: TypeScript Source File
๐จโ๐ป ๊ฐ๋ฐ์ ์ ๋ณด
์ฃผ์ ๊ตฌํ ์ธ๋ถ์ฌํญ
Server Class :
SourceSageServerํด๋์ค๊ฐ MCP ์๋ฒ์ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๊ณตTree Building :
buildTree๋ฉ์๋๊ฐ ์ฌ๊ท์ ์ผ๋ก ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์๋๋ ํ ๋ฆฌ์ ํ์ผ์ ์ ์ ํ๊ฒ ์ ๋ ฌํ๊ณ ํ์
ํ์ผ ํํฐ๋ง :
ignoreํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐํ ํ์ผ ์ ์ธ ์คํํ๋ถํ ๊ธฐ๋ณธ ์ ์ธ ํจํด ๋ฐ ๋ง์ถค ์ค์ ์ง์
Content Generation :
ํ์ผ ํ์์ ๋ฐ๋ผ ์ ์ ํ ๊ตฌ๋ฌธ ๊ฐ์กฐํ์
ํ์ผ ํ์์ ๋ฐ๋ผ ์ถ๊ฐ ์ ๋ณด ์ ๊ณต
Async Processing :
globํจํค์ง๋ฅผ ์ฌ์ฉํ ํจ์จ์ ์ธ ํ์ผ ์ค์บ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํตํ ๋๊ท๋ชจ ํ๋ก์ ํธ ์ง์
๊ฐ๋ฐ ํ๊ฒฝ ์ค์
# ใชใใธใใชใฎใฏใญใผใณ
git clone https://github.com/sunwood-ai-labs/source-sage-mcp-server.git
# ไพๅญ้ขไฟใฎใคใณในใใผใซ
npm install
# ้็บ็จใใซใ
npm run build
# ้็บใตใผใใผใฎ่ตทๅ
npm run inspector์ฌ์ฉ ๊ฐ๋ฅํ npm ์คํฌ๋ฆฝํธ
npm run build: TypeScript ์ปดํ์ผ ๋ฐ ์คํ ๊ถํ ์ค์ npm run prepare: ์ค์น์ ์๋ ๋น๋npm run watch: ๊ฐ๋ฐ ์ ์๋ ์ปดํ์ผnpm run inspector: MCP Inspector ์์
๐ค ๊ธฐ์ฌ
์ด ์ ์ฅ์๋ฅผ ํฌํฌ
์๋ก์ด ๋ธ๋์น ๋ง๋ค๊ธฐ (
git checkout -b feature/amazing-feature)๋ณ๊ฒฝ ์ปค๋ฐ (
git commit -m 'โจ feat: ็ด ๆดใใใๆฉ่ฝใ่ฟฝๅ ')๋ธ๋์น์ ํธ์ (
git push origin feature/amazing-feature)๋์ด์ค๊ธฐ ์์ฒญ ๋ง๋ค๊ธฐ
๐ ๋ผ์ด์ผ์ค
MIT License - ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ญ์์ค.
๐ ๊ด๋ จ ๋งํฌ
๐ฅ ์ ์ง๋ณด์
Sunwood AI Labs Team
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sunwood-ai-labs/source-sage-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server