AstroStellar MCP Server
An MCP server for Zi Wei Dou Shu (Purple Star Astrology) that enables users to construct and interpret natal charts through natural language conversation, integrating a knowledge base of classical texts.
README
ð AstroStellarïŒå€©æçŽ«åºïŒâ çŽ«åŸ®ææ°æºèœ Skill
满倩ææïŒå°œåžçäžã倩æçŽ«åºïŒè§å¿è§åœã
AstroStellar æ¯äžæ¬ŸåºäºçŽ«åŸ®ææ°å€ç±çæºèœæçäžè§£çç³»ç»ïŒä»¥ OpenClaw Skill + MCP Server åé圢ææäŸæå¡ãçšæ·åªéåèå€©äžæ ·éæ¥æäŸåºçä¿¡æ¯ïŒå³å¯èªåšæåºå®æŽåœçïŒå¹¶è·åŸåºäºå€ç±ç¥è¯åºçäžäžè§£è¯»ã
âš å®èœåä»ä¹
| åèœ | 诎æ |
|---|---|
| ð§® æºèœæç | èŸå ¥ç蟰 â èªåšè®¡ç®å®æŽåœçïŒååäž»æãååãåäºå®«ã倧éãæµå¹ŽïŒ |
| ð å€ç±æ¥ä¹Š | ChromaDB è¯ä¹æ£çŽ¢ïŒä» 18 仜å€ç± + 213 页ãçŽ«åŸ®ææ°å šä¹Šãäžæ¥æŸçžå ³è§£è¯» |
| ð® æŽäœè§£ç | çæå 倧æ¿åç»æåæ¥åïŒåœçæŠè§ â åœå®«æ»è®º â åäºå®«ç®æ â ååç¹ç â æ Œå±å€æ â æµå¹Žæç¹ |
| ð¬ äžé¡¹é®ç | 莢è¿ãææ ãäºäžãå¥åº·âŠâŠéäœ é® |
| ðž å解人æ | äžæ¬¡åªé®äžäžªé®é¢ïŒè®°äžæž æ¶èŸ°ä¹äžæïŒåæåèå€©äžæ ·èªç¶ |
ðïž åç
æŽäœæ¶æ
ââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ð€ çšæ· â
â é£ä¹Š / 埮信 / Telegram çæž é â
ââââââââââââââââââââââ¬ââââââââââââââââââââââââââââââ
â èªç¶è¯èšå¯¹è¯
âŒ
ââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ðŠ OpenClaw å¹³å° â
â â
â ââââââââââââââââââââââââââââââââââââââââ â
â â SKILL.md â â
â â · 10 æ¥å®ç对è¯ç¶ææº â â
â â · å解人æç人ç©è®Ÿå® â â
â â · MCP å议工å
·è°åºŠ â â
â ââââââââââââââââ¬ââââââââââââââââââââââââ â
â â MCP Protocol â
ââââââââââââââââââââŒâââââââââââââââââââââââââââââââââ
âŒ
ââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ð§ MCP Server (Python) â
â â
â ââââââââââââââ ââââââââââââ ââââââââââââââââââ â
â â æçåŒæ â â è§£çåŒæ â â ç¥è¯åºåŒæ â â
â â chart.py â âinterp.py â â knowledge.py â â
â â â â â â â â
â â æ¥åèœ¬æ¢ â â ææè§£è¯» â â ChromaDB â â
â â åæ±æšç® â â 宫äœè§£è¯» â â è¯ä¹æ£çŽ¢ â â
â â äºè¡å± â â æ Œå±æ£æµ â â 18 MD + 1 PDF â â
â â å®åœå®« â â 绌åè§£ç â â â â
â â å®ååäž»æ â â äžé¡¹é®ç â â â â
â â å®åå â â â â â â
â â 倧é/æµå¹Ž â â â â â â
â ââââââââââââââ ââââââââââââ ââââââââââââââââââ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââ
æçç®æ³
æçæ žå¿åºäºå€ªé³é»ç»å€©æç®æ³ïŒç¬ç«è®¡ç® 24 èæ°äº€èæ¶å»ïŒäžäŸèµä»»äœæ¥è¡šæ°æ®ïŒ
- æ¥å蜬æ¢ïŒ
lunar_calendar.pyïŒïŒlunardateåºèŽèŽ£å ¬åâååäºèœ¬ïŒåæ±æšç®äœ¿çšå¹²æ¯çºªæ¥åºç¹ïŒ1900-01-01 = ç²ææ¥ïŒïŒæè·åºç¹å€©æ°æšå¯Œæ¥æ± - å®åœå®«/身宫ïŒ
chart.pyïŒïŒå¯ èµ·æ£æïŒæçæé¡ºéæ°ïŒåæçæ¶é¡ºéæ° - å®ååäž»æïŒæ ¹æ®äºè¡å±æ°åå忥å®çŽ«åŸ®äœçœ®ïŒçŽ«åŸ®ç³»å æéæïŒå€©åºç³»å «æé¡ºæ
- å®ååïŒåå¹²ååè¡šå šèŠç
- æå€§é/æµå¹ŽïŒé³ç·éŽå¥³é¡ºè¡ïŒéŽç·é³å¥³éè¡ïŒå±æ°èµ·è¿
ç¥è¯åº
- æ°æ®æºïŒ18 仜 Markdown æ ŒåŒçŽ«åŸ®ææ°å€ç± + 213 页ãçŽ«åŸ®ææ°å šä¹ŠãPDFïŒåå山人çïŒ
- æ£çŽ¢æ¹åŒïŒChromaDB åéæ°æ®åº +
sentence-transformerså€è¯èšåµå ¥æš¡å - æä¹
åïŒéŠæ¬¡å 蜜ååå
¥
data/chroma_db/ïŒåç»çŽæ¥è¯»åïŒæ ééå€æå»º
è§£çåŒæ
éçšãæ°æ® + ç¥è¯åº + ç»æåæš¡æ¿ãäžåäžæ¹åŒïŒ
- ä»
stars.jsonè·åååäž»æç»æå屿§ïŒäºè¡ãéŽé³ãåºæºãèœé·ãåå®«è§£è¯»ïŒ - ä» ChromaDB è¯ä¹æ£çŽ¢çžå ³å€ç±æ®µèœ
- æå 倧æ¿åæš¡æ¿ç»è£ äžºå®æŽæ¥å
- äžé¡¹é®çéè¿ 30+ å ³é®è¯æºèœè·¯ç±å°çžå ³å®«äœ
ðŠ äžèœœäœçœ®
GitHub ä»åºïŒ https://github.com/zhaopeng309/AstroStellar
git clone https://github.com/zhaopeng309/AstroStellar.git
cd AstroStellar
ð äœ¿çšæ¹æ³
ç¬¬äžæ¥ïŒå é项ç®
git clone https://github.com/zhaopeng309/AstroStellar.git
cd AstroStellar
ç¬¬äºæ¥ïŒå建èæç¯å¢
python3 -m venv venv
source venv/bin/activate
ç¬¬äžæ¥ïŒå®è£ äŸèµ
pip install -r requirements.txt
â ïž éŠæ¬¡å®è£ äŒäžèœœ
sentence-transformersåµå ¥æš¡åïŒçºŠ 500MBïŒïŒè¯·ç¡®ä¿çœç»ç éäžç£ç空éŽå è¶³ã
ç¬¬åæ¥ïŒïŒå¯éïŒåå§åç¥è¯åº
ç¥è¯åºäŒåšéŠæ¬¡è°çš astrostellar_search_knowledge æ¶èªåšæå»ºãä¹å¯ä»¥æåšåå§åïŒ
source venv/bin/activate
python -c "from src.knowledge import init_knowledge_base; init_knowledge_base('references', 'data/chroma_db')"
åå§å宿åïŒChromaDB æ°æ®äŒæä¹ åå°
data/chroma_db/ïŒåç»å¯åšæ ééå€æå»ºã
ç¬¬äºæ¥ïŒå¯åš MCP Server
source venv/bin/activate
python src/server.py
MCP Server äœ¿çš stdio äŒ èŸåè®®ïŒç± OpenClaw å¹³å°èªåšè°çšïŒæ éæåšæŽé²ç«¯å£ã
ç¬¬å æ¥ïŒåš OpenClaw äžäœ¿çš
å° SKILL.md èœ¯è¿æ¥å° OpenClaw ç skills ç®åœïŒæçŽæ¥éè¿ OpenClaw ç Skill 管çå 蜜ã
对è¯ç€ºäŸ
çšæ·ïŒåž®ææç
倩æïŒðž äœ å¥œåïœææ¯å€©æïŒå¯ä»¥åž®äœ æçŽ«åŸ®ææ°åœçâŠâŠ
å
仿ç®åçé®é¢åŒå§ïŒäœ æ¯åªäžå¹ŽåºççïŒïŒæ¯åŠ 1990ïŒ
çšæ·ïŒ1990
倩æïŒå¥œçïŒ1990 幎ïŒè®°äžäº âïž
æ¥äžæ¥ïŒäœ ççæ¥æ¯å æå å·ïŒ
ð å·²æ¶éïŒ1990 幎
çšæ·ïŒ6æ15æ¥
倩æïŒç¥éäºïŒ6 æ 15 æ¥ âïž
è¿äžªæ¥ææ¯å
¬åè¿æ¯ååïŒ
ð å·²æ¶éïŒ1990 幎 6 æ 15 æ¥
âŠâŠïŒç»§ç» 10 æ¥å®çïŒâŠâŠ
倩æïŒðž äœ ççŽ«åŸ®ææ°åœç
ââââââ åæ± ââââââ
幎æ±åºå ææ±å£¬å æ¥æ±èŸäº¥
çšæ·ïŒæçèŽ¢è¿æä¹æ ·ïŒ
倩æïŒå
³äºèŽ¢è¿ââ
莢åžå®«åç³ïŒå®«å
æŠæ²å€©åºïŒé¢åçŠå莢è¿äºšéâŠâŠ
ð 项ç®ç»æ
AstroStellar/
âââ SKILL.md # OpenClaw æèœå®ä¹ïŒå¯¹è¯æµ + 人ç©è®Ÿå®ïŒ
âââ skill-card.md # æèœå
æ°æ®
âââ README.md # æ¬æä»¶
âââ requirements.txt # Python äŸèµ
â
âââ plan/ # 宿ŽåŒå计åïŒ4 仜ïŒ
â âââ Inflare_Development_Plan.md # æ»äœæ¶æ
â âââ Phase2_Development_Plan.md # æçæ žå¿
â âââ Phase3_Development_Plan.md # è§£ç + ç¥è¯åº
â âââ Phase4_Development_Plan.md # SKILL.md + éæ
â
âââ src/ # æ žå¿åŒæ
â âââ lunar_calendar.py # Block 1: æ¥å + åæ± + äºè¡å± + èæ°è®¡ç®
â âââ chart.py # Block 2: æçæ žå¿ïŒåœå®«âäž»æâååâ倧éâæµå¹ŽïŒ
â âââ knowledge.py # Block 3a: ç¥è¯åºïŒChromaDB è¯ä¹æ£çŽ¢ïŒ
â âââ interpreter.py # Block 3b: è§£çåŒæ
â âââ server.py # Block 4: MCP ServerïŒ3 䞪 toolïŒ
â
âââ data/ # æ°æ®
â âââ stars.json # ååäž»æç»æå屿§
â âââ chroma_db/ # ChromaDB æä¹
åç¥è¯åºïŒæ¬å°çæïŒäžçº³å
¥ gitïŒ
â
âââ references/ # çŽ«åŸ®ææ°åè乊ç±
â âââ major-star.md # ååäž»æè¯Šè§£
â âââ palace.md # åäºå®«è¯Šè§£
â âââ mutagen.md # ååæ
â âââ pattern.md # æ Œå±å€§å
š
â âââ setup.md # 宿è¯ïŒæçå£è¯ïŒ
â âââ çŽ«åŸ®ææ°å
šä¹Š.pdf # 213 页å€ç±å
šä¹Š
â
âââ tests/ # èªåšåæµè¯ïŒ225+ çšäŸïŒ
âââ test_calendar.py # æ¥å + åæ± + äºè¡å±
âââ test_chart.py # æçæ žå¿
âââ test_knowledge.py # ç¥è¯åº
âââ test_interpreter.py # è§£çåŒæ
âââ test_server.py # MCP Server
𧪠æµè¯
cd AstroStellar
source venv/bin/activate
python -m pytest tests/ -v
åœåæµè¯èŠçïŒ225+ çšäŸïŒå šéšéè¿ã
ð¡ ç¥è¯åºæµè¯ïŒ
test_knowledge.pyïŒæ¶å embedding æš¡åïŒè¥å åäžè¶³å¯è·³è¿ïŒpython -m pytest tests/ -v --ignore=tests/test_knowledge.py
ð ææ¯æ
| ç»ä»¶ | ææ¯ | çšé |
|---|---|---|
| åæ³ | lunardate |
å ¬åâååäºèœ¬ïŒ1900-2100ïŒ |
| èæ° | 纯 Python 倪é³é»ç»ç®æ³ | ç«æ¥/æè°ç 12 èäº€èæ¶éŽ |
| æç | 纯 Python å®ç° | åœå®«ãäž»æãååã倧éãæµå¹Ž |
| ç¥è¯åº | ChromaDB + sentence-transformers |
å€ç±è¯ä¹æ£çŽ¢ |
| MCP | mcp (FastMCP) |
æ å Tool æ¥å£ |
| æµè¯ | pytest |
åå + éæ |
â ïž æ³šæäºé¡¹
- 幎仜èåŽïŒæ¯æ 1900-2100 幎ïŒlunardate åºéå¶ïŒ
- ChromaDB åå§åïŒéŠæ¬¡æå»ºç¥è¯åºéäžèœœ embedding æš¡åïŒ~500MBïŒïŒå®æåæä¹ åæ ééå€
- MCP åè®®ïŒServer äœ¿çš stdio äŒ èŸïŒç± OpenClaw èªåšç®¡ççåœåšæ
- èæç¯å¢ïŒå§ç»åšé¡¹ç® venv äžè¿è¡ïŒäžèŠäœ¿çšç³»ç» Python
ð 倩æçŽ«åº â æ»¡å€©ææïŒå°œåžçäž
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.