@kasarlabs/mcp-doc-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +202 -0
- package/bin/mcp-doc-mcp.js +2 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +57 -0
- package/build/index.js.map +1 -0
- package/build/resources/architecture.md +369 -0
- package/build/resources/capabilities.md +573 -0
- package/build/resources/help.md +147 -0
- package/build/resources/projects.md +104 -0
- package/build/schemas/index.d.ts +35 -0
- package/build/schemas/index.js +42 -0
- package/build/schemas/index.js.map +1 -0
- package/build/tools/explainArchitecture.d.ts +11 -0
- package/build/tools/explainArchitecture.js +21 -0
- package/build/tools/explainArchitecture.js.map +1 -0
- package/build/tools/getHelp.d.ts +11 -0
- package/build/tools/getHelp.js +21 -0
- package/build/tools/getHelp.js.map +1 -0
- package/build/tools/listCapabilities.d.ts +11 -0
- package/build/tools/listCapabilities.js +21 -0
- package/build/tools/listCapabilities.js.map +1 -0
- package/build/tools/suggestProjects.d.ts +11 -0
- package/build/tools/suggestProjects.js +21 -0
- package/build/tools/suggestProjects.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
1. **Solidity-to-Cairo Transpiler Agent**
|
|
2
|
+
Build an MCP client that lets users upload Solidity code, forwards it to a “Cairo Coder” agent, and returns equivalent Cairo smart contracts. The agent handles transpilation and can optionally verify, format, and suggest improvements.
|
|
3
|
+
|
|
4
|
+
2. **Model-vs-Model Trading War**
|
|
5
|
+
Give two (or more) agents the same starting capital and connect them to DeFi protocols on Starknet. They periodically query the market and decide whether to trade, farm, or do nothing. You track and visualize their portfolio performance over time to see which agent strategy wins.
|
|
6
|
+
|
|
7
|
+
3. **Promptable Cross-Chain Bridge**
|
|
8
|
+
Use cross-chain bridge MCPs (e.g. StarkGate, LayerSwap) to let users say things like “Bridge 0.5 ETH from Ethereum to Starknet to my Braavos wallet” in natural language (or even voice). The agent translates that into the correct bridge transactions and flow.
|
|
9
|
+
|
|
10
|
+
4. **Agent-Powered On-Chain Gaming**
|
|
11
|
+
Connect to Starknet on-chain games such as Ponziland or LootSurvivor (via Dojo, Cartridge, etc.) and let agents play on behalf of the user. Agents can optimize for survival, maximizing rewards, or testing weird strategies in a fully automated way.
|
|
12
|
+
|
|
13
|
+
5. **Yield Farming Optimizer Agent**
|
|
14
|
+
Create an agent that scans all major DeFi protocols on Starknet, comparing yields, risk, lockup, and fees. It suggests the best routes (e.g. swap → deposit → leverage) and can prepare the full transaction path for the user.
|
|
15
|
+
|
|
16
|
+
6. **Human-to-RPC Request Explorer**
|
|
17
|
+
Build a service where a human request like “Show me the last 20 transactions of this address” is translated into the appropriate low-level Starknet RPC calls. The agent acts as a “human interface” to the ~20 core RPC methods, explains what’s happening, and shows the responses in a friendly way.
|
|
18
|
+
|
|
19
|
+
7. **Meme Coin Agent Launcher**
|
|
20
|
+
Combine Ask Starknet with tools like Unruggable and Ekubo plus a social MCP (e.g. Twitter/X) to let an agent launch meme coins automatically: deploying the token, creating the pool, seeding liquidity, and even posting announcements — all from a high-level prompt.
|
|
21
|
+
|
|
22
|
+
8. **Virtuals Fork on Starknet**
|
|
23
|
+
Create an agent that can deploy and manage a “Virtuals-style” fork on Starknet. It would handle deploying the contracts, configuring parameters, and managing updates so users can spin up their own Virtuals-inspired ecosystems on Starknet.
|
|
24
|
+
|
|
25
|
+
9. **Cairo Contract Inventor & Deployer**
|
|
26
|
+
An autonomous agent that continuously designs, codes, and deploys new Cairo contracts. It uses Ask Starknet’s Cairo and tooling knowledge to create, verify, and prove contracts or Cairo execution traces, effectively becoming a “Cairo factory.”
|
|
27
|
+
|
|
28
|
+
10. **dApp Companion / Helper Extension**
|
|
29
|
+
A browser extension that watches which Starknet dApps you’re visiting and offers contextual help: explaining what a contract does, warning about risks, giving step-by-step guidance, or proposing optimized flows inside each dApp.
|
|
30
|
+
|
|
31
|
+
11. **Privacy-First Execution Agent**
|
|
32
|
+
Build an agent that only executes through privacy-focused tools on Starknet. It chooses private routes for swaps, transfers, or interactions whenever possible, and explains to users how their privacy is being preserved.
|
|
33
|
+
|
|
34
|
+
12. **Augmented Starknet Explorer**
|
|
35
|
+
Combine an indexer with a natural-language agent so users can ask questions like “What did this address do right after Trump’s latest announcement?” or “Show all large swaps into CASH in the last 24 hours.” The agent turns these into data queries and returns human-readable insights.
|
|
36
|
+
|
|
37
|
+
13. **Tooling Setup & Plugin Orchestrator**
|
|
38
|
+
An agent dedicated to helping builders configure all the right MCPs and tools for their workflow. You describe what you want to build, and it recommends, configures, and wires together plugins (DeFi, wallet, indexer, games, etc.) for you.
|
|
39
|
+
|
|
40
|
+
14. **Image-to-ERC721 NFT Pipeline**
|
|
41
|
+
Create a workflow where users generate art via image models (OpenAI, Nano Banana, Higgsfield, etc.), and the agent automatically turns the chosen image into an ERC-721 NFT and deploys it on Starknet mainnet.
|
|
42
|
+
|
|
43
|
+
15. **Wallet Copilot (“Anti-Rekt” Assistant)**
|
|
44
|
+
A safety layer that reads every transaction before it’s signed, explains it in plain English, estimates risk (rug risk, slippage, unknown contracts, new protocol), and assigns a clear risk score. It’s like a real-time security reviewer for your Starknet wallet.
|
|
45
|
+
|
|
46
|
+
16. **Intent-Based Automation (On-Chain IFTTT)**
|
|
47
|
+
Users declare rules like “If STRK drops more than 15% in 2 hours, move half my portfolio into CASH” or “Every Monday roll my yield positions.” The agent monitors conditions and prepares relevant DeFi actions whenever a rule triggers.
|
|
48
|
+
|
|
49
|
+
17. **Governance & DAO Voting Analyst**
|
|
50
|
+
An agent focused on Starknet and protocol governance: it aggregates proposals, summarizes them, simulates their impact on your positions, and then suggests which way you might want to vote based on goals you set (security-focused, yield-focused, etc.).
|
|
51
|
+
|
|
52
|
+
18. **Memecoin “RugRadar” Scanner**
|
|
53
|
+
A watchdog agent that constantly scans new meme tokens and liquidity pools, checking for red flags like unlocked liquidity, suspicious deployer history, holder concentration, and weird tokenomics. It outputs a “degen report” and a risk rating for each token.
|
|
54
|
+
|
|
55
|
+
19. **On-Chain Address Storyteller**
|
|
56
|
+
Given an address, the agent reconstructs a narrative instead of a dry transaction list: when the wallet started, how it evolved (farmer, gamer, NFT collector, memecoin degen), what protocols it prefers, and notable events. It creates a human-readable “biography” of that address.
|
|
57
|
+
|
|
58
|
+
20. **Gamified Cairo Learning (“Cairo Gym”)**
|
|
59
|
+
An agent teacher that generates graded Cairo exercises, checks user solutions by actually compiling and (optionally) deploying them, then provides detailed feedback on style, performance, and security. It can also propose “katas” and track your progress like a coding dojo.
|
|
60
|
+
|
|
61
|
+
21. **Multi-Agent DeFi Stress Tester**
|
|
62
|
+
A simulation environment where several agents play different roles (whale, retail degen, cautious farmer, market maker) and interact with Starknet DeFi. You tweak external conditions (price shocks, liquidity drops, fee spikes) and the system produces a stress-test report for a given protocol or portfolio.
|
|
63
|
+
|
|
64
|
+
22. **On-Chain Quest & Achievement System**
|
|
65
|
+
A “quest master” that defines and verifies on-chain missions such as “Perform 3 swaps on AVNU” or “Reach level X in a Starknet game.” Once conditions are met, the agent can mint NFT badges or other rewards as proof of completion.
|
|
66
|
+
|
|
67
|
+
23. **Community Fact-Checker Bot**
|
|
68
|
+
A bot for Discord/Telegram that listens to claims like “Protocol X just got hacked” or “Yields changed on this vault,” checks them on-chain and via relevant agents, and responds with a neutral, verified summary. It can also answer “what-if” questions about user positions.
|
|
69
|
+
|
|
70
|
+
24. **Gas & Fee Optimization Assistant**
|
|
71
|
+
An agent that tracks network congestion and fee patterns, suggests optimal times to execute actions, and can batch multiple operations (approvals, swaps, deposits) into fewer transactions when possible. It helps users save fees without needing to understand the low-level details.
|
|
72
|
+
|
|
73
|
+
25. **NFT Curator & Floor Sniper**
|
|
74
|
+
A curator agent that monitors NFT collections on Starknet, detects underpriced listings, sudden spikes in interest, and whale activity. It builds thematic lists (art, memes, gaming) and can suggest “sniping” opportunities based on user-defined risk and budget.
|
|
75
|
+
|
|
76
|
+
26. **Meta-Builder for New MCPs**
|
|
77
|
+
An agent that helps developers bootstrap new MCP servers. You give it an API or a new Starknet protocol, and it generates the MCP boilerplate code, configuration, documentation, and even basic tests or example prompts.
|
|
78
|
+
|
|
79
|
+
27. **Node & Infra Health Doctor**
|
|
80
|
+
An ops-focused agent that monitors node or gateway health — block lag, backlog, error rates — and gives human-readable diagnoses plus tuning suggestions. Useful for infrastructure providers, rollup operators, or explorers.
|
|
81
|
+
|
|
82
|
+
28. **Portfolio Life Planner**
|
|
83
|
+
An agent that connects your on-chain portfolio to life goals like “I want 100 USD/month in relatively stable yield within 12 months.” It explores different Starknet strategies, backtests scenarios, and gives you a path plus periodic updates on whether you’re ahead or behind schedule.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Getting Started
|
|
88
|
+
|
|
89
|
+
Choose a project that interests you and:
|
|
90
|
+
|
|
91
|
+
1. **Review required MCPs** and their tools
|
|
92
|
+
2. **Set up environment variables**
|
|
93
|
+
3. **Start with a simple prototype**
|
|
94
|
+
4. **Test with small amounts first**
|
|
95
|
+
5. **Build incrementally**
|
|
96
|
+
6. **Add error handling**
|
|
97
|
+
7. **Create documentation**
|
|
98
|
+
8. **Deploy and iterate**
|
|
99
|
+
|
|
100
|
+
For any questions, just ask:
|
|
101
|
+
|
|
102
|
+
- "How do I get started with [project name]?"
|
|
103
|
+
- "What tools do I need for [feature]?"
|
|
104
|
+
- "Show me an example of [specific operation]"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const explainArchitectureSchema: z.ZodObject<{
|
|
3
|
+
topic: z.ZodOptional<z.ZodEnum<["router", "mcps", "interaction", "all"]>>;
|
|
4
|
+
}, "strip", z.ZodTypeAny, {
|
|
5
|
+
topic?: "router" | "mcps" | "interaction" | "all" | undefined;
|
|
6
|
+
}, {
|
|
7
|
+
topic?: "router" | "mcps" | "interaction" | "all" | undefined;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const listCapabilitiesSchema: z.ZodObject<{
|
|
10
|
+
domain: z.ZodOptional<z.ZodEnum<["wallets", "defi", "blockchain", "dev-tools", "special", "all"]>>;
|
|
11
|
+
mcp: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
domain?: "all" | "wallets" | "defi" | "blockchain" | "dev-tools" | "special" | undefined;
|
|
14
|
+
mcp?: string | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
domain?: "all" | "wallets" | "defi" | "blockchain" | "dev-tools" | "special" | undefined;
|
|
17
|
+
mcp?: string | undefined;
|
|
18
|
+
}>;
|
|
19
|
+
export declare const suggestProjectsSchema: z.ZodObject<{
|
|
20
|
+
domain: z.ZodOptional<z.ZodEnum<["defi", "nft", "trading", "automation", "analytics", "gaming", "all"]>>;
|
|
21
|
+
mcps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
22
|
+
}, "strip", z.ZodTypeAny, {
|
|
23
|
+
mcps?: string[] | undefined;
|
|
24
|
+
domain?: "all" | "defi" | "nft" | "trading" | "automation" | "analytics" | "gaming" | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
mcps?: string[] | undefined;
|
|
27
|
+
domain?: "all" | "defi" | "nft" | "trading" | "automation" | "analytics" | "gaming" | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
export declare const getHelpSchema: z.ZodObject<{
|
|
30
|
+
topic: z.ZodOptional<z.ZodEnum<["quickstart", "setup", "capabilities", "troubleshooting", "all"]>>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
topic?: "all" | "quickstart" | "setup" | "capabilities" | "troubleshooting" | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
topic?: "all" | "quickstart" | "setup" | "capabilities" | "troubleshooting" | undefined;
|
|
35
|
+
}>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const explainArchitectureSchema = z.object({
|
|
3
|
+
topic: z
|
|
4
|
+
.enum(['router', 'mcps', 'interaction', 'all'])
|
|
5
|
+
.optional()
|
|
6
|
+
.describe('Topic to explain: router (AI routing system and specialized agents), mcps (MCP servers structure), interaction (how agents and MCPs work together), or all'),
|
|
7
|
+
});
|
|
8
|
+
export const listCapabilitiesSchema = z.object({
|
|
9
|
+
domain: z
|
|
10
|
+
.enum(['wallets', 'defi', 'blockchain', 'dev-tools', 'special', 'all'])
|
|
11
|
+
.optional()
|
|
12
|
+
.describe('Filter by domain: wallets, defi, blockchain, dev-tools, special, or all'),
|
|
13
|
+
mcp: z
|
|
14
|
+
.string()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Filter by specific MCP name (e.g., "avnu", "erc20")'),
|
|
17
|
+
});
|
|
18
|
+
export const suggestProjectsSchema = z.object({
|
|
19
|
+
domain: z
|
|
20
|
+
.enum([
|
|
21
|
+
'defi',
|
|
22
|
+
'nft',
|
|
23
|
+
'trading',
|
|
24
|
+
'automation',
|
|
25
|
+
'analytics',
|
|
26
|
+
'gaming',
|
|
27
|
+
'all',
|
|
28
|
+
])
|
|
29
|
+
.optional()
|
|
30
|
+
.describe('Filter by project domain'),
|
|
31
|
+
mcps: z
|
|
32
|
+
.array(z.string())
|
|
33
|
+
.optional()
|
|
34
|
+
.describe('Filter projects that use specific MCPs (e.g., ["avnu", "ekubo"])'),
|
|
35
|
+
});
|
|
36
|
+
export const getHelpSchema = z.object({
|
|
37
|
+
topic: z
|
|
38
|
+
.enum(['quickstart', 'setup', 'capabilities', 'troubleshooting', 'all'])
|
|
39
|
+
.optional()
|
|
40
|
+
.describe('Help topic: quickstart (basic usage), setup (configuration), capabilities (what Ask Starknet can do), troubleshooting (common issues), or all'),
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;SAC9C,QAAQ,EAAE;SACV,QAAQ,CACP,4JAA4J,CAC7J;CACJ,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;SACtE,QAAQ,EAAE;SACV,QAAQ,CACP,yEAAyE,CAC1E;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;CACnE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC;SACN,IAAI,CAAC;QACJ,MAAM;QACN,KAAK;QACL,SAAS;QACT,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,KAAK;KACN,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,0BAA0B,CAAC;IACvC,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,kEAAkE,CACnE;CACJ,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;SACvE,QAAQ,EAAE;SACV,QAAQ,CACP,+IAA+I,CAChJ;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { explainArchitectureSchema } from '../schemas/index.js';
|
|
3
|
+
export declare const explainArchitecture: (params: z.infer<typeof explainArchitectureSchema>) => Promise<{
|
|
4
|
+
status: string;
|
|
5
|
+
data: string;
|
|
6
|
+
error?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
status: string;
|
|
9
|
+
error: string;
|
|
10
|
+
data?: undefined;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
+
const __dirname = dirname(__filename);
|
|
6
|
+
export const explainArchitecture = async (params) => {
|
|
7
|
+
try {
|
|
8
|
+
const content = readFileSync(join(__dirname, '../resources/architecture.md'), 'utf-8');
|
|
9
|
+
return {
|
|
10
|
+
status: 'success',
|
|
11
|
+
data: content,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
return {
|
|
16
|
+
status: 'failure',
|
|
17
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=explainArchitecture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainArchitecture.js","sourceRoot":"","sources":["../../src/tools/explainArchitecture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAKtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAAiD,EACjD,EAAE;IACF,IAAI,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EAC/C,OAAO,CACR,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getHelpSchema } from '../schemas/index.js';
|
|
3
|
+
export declare const getHelp: (params: z.infer<typeof getHelpSchema>) => Promise<{
|
|
4
|
+
status: string;
|
|
5
|
+
data: string;
|
|
6
|
+
error?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
status: string;
|
|
9
|
+
error: string;
|
|
10
|
+
data?: undefined;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
+
const __dirname = dirname(__filename);
|
|
6
|
+
export const getHelp = async (params) => {
|
|
7
|
+
try {
|
|
8
|
+
const content = readFileSync(join(__dirname, '../resources/help.md'), 'utf-8');
|
|
9
|
+
return {
|
|
10
|
+
status: 'success',
|
|
11
|
+
data: content,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
return {
|
|
16
|
+
status: 'failure',
|
|
17
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=getHelp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getHelp.js","sourceRoot":"","sources":["../../src/tools/getHelp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAKtC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAqC,EAAE,EAAE;IACrE,IAAI,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EACvC,OAAO,CACR,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { listCapabilitiesSchema } from '../schemas/index.js';
|
|
3
|
+
export declare const listCapabilities: (params: z.infer<typeof listCapabilitiesSchema>) => Promise<{
|
|
4
|
+
status: string;
|
|
5
|
+
data: string;
|
|
6
|
+
error?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
status: string;
|
|
9
|
+
error: string;
|
|
10
|
+
data?: undefined;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
+
const __dirname = dirname(__filename);
|
|
6
|
+
export const listCapabilities = async (params) => {
|
|
7
|
+
try {
|
|
8
|
+
const content = readFileSync(join(__dirname, '../resources/capabilities.md'), 'utf-8');
|
|
9
|
+
return {
|
|
10
|
+
status: 'success',
|
|
11
|
+
data: content,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
return {
|
|
16
|
+
status: 'failure',
|
|
17
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=listCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listCapabilities.js","sourceRoot":"","sources":["../../src/tools/listCapabilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAKtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,MAA8C,EAC9C,EAAE;IACF,IAAI,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EAC/C,OAAO,CACR,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { suggestProjectsSchema } from '../schemas/index.js';
|
|
3
|
+
export declare const suggestProjects: (params: z.infer<typeof suggestProjectsSchema>) => Promise<{
|
|
4
|
+
status: string;
|
|
5
|
+
data: string;
|
|
6
|
+
error?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
status: string;
|
|
9
|
+
error: string;
|
|
10
|
+
data?: undefined;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
+
const __dirname = dirname(__filename);
|
|
6
|
+
export const suggestProjects = async (params) => {
|
|
7
|
+
try {
|
|
8
|
+
const content = readFileSync(join(__dirname, '../resources/projects.md'), 'utf-8');
|
|
9
|
+
return {
|
|
10
|
+
status: 'success',
|
|
11
|
+
data: content,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
return {
|
|
16
|
+
status: 'failure',
|
|
17
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=suggestProjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestProjects.js","sourceRoot":"","sources":["../../src/tools/suggestProjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAKtC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,MAA6C,EAC7C,EAAE;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,EAC3C,OAAO,CACR,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kasarlabs/mcp-doc-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"mcp-doc-mcp": "./bin/mcp-doc-mcp.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc && cp -r src/resources build/ && chmod 755 build/index.js",
|
|
11
|
+
"clean": "rm -rf build",
|
|
12
|
+
"clean:all": "rm -rf build node_modules",
|
|
13
|
+
"start": "node build/index.js"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"build"
|
|
17
|
+
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@kasarlabs/ask-starknet-core": "0.1.1",
|
|
20
|
+
"@modelcontextprotocol/sdk": "^1.11.2",
|
|
21
|
+
"dotenv": "^16.4.7",
|
|
22
|
+
"zod": "^3.24.2"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/node": "^22.13.10",
|
|
26
|
+
"tsx": "^4.19.2",
|
|
27
|
+
"typescript": "^5.8.2"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"mcp",
|
|
31
|
+
"starknet",
|
|
32
|
+
"documentation",
|
|
33
|
+
"help",
|
|
34
|
+
"ask-starknet"
|
|
35
|
+
],
|
|
36
|
+
"author": "kasarlabs",
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"description": "Help and documentation MCP server for Ask Starknet: usage guide, architecture explanation, capabilities listing, and project ideas",
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public"
|
|
41
|
+
},
|
|
42
|
+
"gitHead": "4212f968456c2a170aac99306a899ae43458e23c"
|
|
43
|
+
}
|