fridayy 1.0.2 → 1.2.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/README.md +12 -0
- package/dist/cli/commands/use.d.ts +7 -0
- package/dist/cli/commands/use.d.ts.map +1 -0
- package/dist/cli/commands/use.js +89 -0
- package/dist/cli/commands/use.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ui/banner.js +1 -1
- package/package.json +2 -1
- package/point/AI_INSTRUCTIONS.md +130 -0
- package/point/PROJECT_CONTEXT.md +61 -0
- package/point/QUICK_START_PROMPT.md +27 -0
package/README.md
CHANGED
|
@@ -76,6 +76,9 @@ npx fridayy init
|
|
|
76
76
|
### 2. The 4-Step Developer Experience
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
+
# How-To & Architecture guide
|
|
80
|
+
fridayy use
|
|
81
|
+
|
|
79
82
|
# Step 1: Initialize Fridayy configuration in your project
|
|
80
83
|
fridayy init
|
|
81
84
|
|
|
@@ -94,6 +97,15 @@ fridayy start
|
|
|
94
97
|
|
|
95
98
|
---
|
|
96
99
|
|
|
100
|
+
### 🤖 Pointing AI Assistants to Your Project
|
|
101
|
+
|
|
102
|
+
Simply point any LLM or AI agent (Cursor, Claude, ChatGPT, Gemini, Antigravity) to:
|
|
103
|
+
👉 **[`point/AI_INSTRUCTIONS.md`](point/AI_INSTRUCTIONS.md)**
|
|
104
|
+
|
|
105
|
+
The AI will automatically understand your architecture, discover endpoints, generate tools, configure safe permissions, and run the MCP server autonomously!
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
97
109
|
## 🏗️ Architecture
|
|
98
110
|
|
|
99
111
|
fridayy is built with a modular, extensible architecture designed for future pluggability:
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fridayy - Use Command (How-To Guide & Product Vision)
|
|
3
|
+
* Explains the application motto, architecture, step-by-step usage, and AI client setups.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
export declare function registerUseCommand(program: Command): void;
|
|
7
|
+
//# sourceMappingURL=use.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/use.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+FzD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fridayy - Use Command (How-To Guide & Product Vision)
|
|
3
|
+
* Explains the application motto, architecture, step-by-step usage, and AI client setups.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { printBanner } from '../ui/banner.js';
|
|
7
|
+
export function registerUseCommand(program) {
|
|
8
|
+
program
|
|
9
|
+
.command('use')
|
|
10
|
+
.description('Display detailed how-to guide, product vision, architecture, and client setup instructions')
|
|
11
|
+
.option('--json', 'Output guide in JSON format')
|
|
12
|
+
.action((options) => {
|
|
13
|
+
printBanner();
|
|
14
|
+
if (options.json) {
|
|
15
|
+
const guide = {
|
|
16
|
+
name: 'fridayy',
|
|
17
|
+
tagline: 'Universal Application-to-MCP Platform — Turn existing APIs into AI-ready tools',
|
|
18
|
+
motto: 'Build once. Connect everywhere.',
|
|
19
|
+
author: 'Sabarivasan',
|
|
20
|
+
workflow: [
|
|
21
|
+
{ step: 1, command: 'fridayy init', description: 'Initialize Fridayy configuration' },
|
|
22
|
+
{ step: 2, command: 'fridayy scan', description: 'Detect APIs, routes, and auth schemes' },
|
|
23
|
+
{ step: 3, command: 'fridayy generate', description: 'Generate MCP candidate tools' },
|
|
24
|
+
{ step: 4, command: 'fridayy review', description: 'Approve or block candidate tools' },
|
|
25
|
+
{ step: 5, command: 'fridayy start', description: 'Start standards-compliant MCP server' }
|
|
26
|
+
]
|
|
27
|
+
};
|
|
28
|
+
console.log(JSON.stringify(guide, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(chalk.bold.hex('#00d2ff')('================================================================================'));
|
|
32
|
+
console.log(chalk.bold.hex('#00d2ff')(' 🎯 THE FRIDAYY MOTTO & PRODUCT VISION'));
|
|
33
|
+
console.log(chalk.bold.hex('#00d2ff')('================================================================================\n'));
|
|
34
|
+
console.log(` ${chalk.bold.white('“Turn existing applications and APIs into AI-ready tools with zero code rewriting.”')}\n`);
|
|
35
|
+
console.log(` ${chalk.gray('Existing applications shouldn’t need a complete rewrite to be useful to AI models.')}`);
|
|
36
|
+
console.log(` ${chalk.gray('Fridayy creates a safe, reviewable bridge between your backend and modern AI agents.')}\n`);
|
|
37
|
+
console.log(chalk.bold.hex('#00b4d8')('================================================================================'));
|
|
38
|
+
console.log(chalk.bold.hex('#00b4d8')(' ⚙️ HOW IT WORKS UNDER THE HOOD'));
|
|
39
|
+
console.log(chalk.bold.hex('#00b4d8')('================================================================================\n'));
|
|
40
|
+
console.log(` ${chalk.cyan('1. Capability Discovery:')}`);
|
|
41
|
+
console.log(` Scans OpenAPI specs (v3.0, v3.1, Swagger 2.0) or Node.js Express/Fastify routes.`);
|
|
42
|
+
console.log(` ${chalk.cyan('2. Schema Normalization:')}`);
|
|
43
|
+
console.log(` Merges URL path variables, query parameters, headers, and request bodies into`);
|
|
44
|
+
console.log(` a unified, typed JSON Schema for LLMs.`);
|
|
45
|
+
console.log(` ${chalk.cyan('3. Zero-Trust Security & Risk Engine:')}`);
|
|
46
|
+
console.log(` Classifies actions into ${chalk.green('READ')} (safe), ${chalk.yellow('WRITE')} (mutating), and ${chalk.red.bold('DESTRUCTIVE')} (delete/purge).`);
|
|
47
|
+
console.log(` Destructive tools default to ${chalk.red.bold('BLOCKED')} until you approve them.`);
|
|
48
|
+
console.log(` ${chalk.cyan('4. Zero-Leak Secret Isolation:')}`);
|
|
49
|
+
console.log(` API keys/tokens are loaded strictly from environment variables at execution time`);
|
|
50
|
+
console.log(` and never leaked in LLM prompts or tool schemas.`);
|
|
51
|
+
console.log(` ${chalk.cyan('5. Official MCP Server Transport:')}`);
|
|
52
|
+
console.log(` Exposes tools via standard Stdio & SSE protocols for Claude Desktop, Cursor, etc.\n`);
|
|
53
|
+
console.log(chalk.bold.hex('#7209b7')('================================================================================'));
|
|
54
|
+
console.log(chalk.bold.hex('#7209b7')(' 🚀 STEP-BY-STEP WORKFLOW'));
|
|
55
|
+
console.log(chalk.bold.hex('#7209b7')('================================================================================\n'));
|
|
56
|
+
console.log(` ${chalk.bold.white('Step 1:')} ${chalk.cyan.bold('fridayy init')} ${chalk.gray('→ Creates fridayy.config.json')}`);
|
|
57
|
+
console.log(` ${chalk.bold.white('Step 2:')} ${chalk.cyan.bold('fridayy scan')} ${chalk.gray('→ Inspects your endpoints and auth schemes')}`);
|
|
58
|
+
console.log(` ${chalk.bold.white('Step 3:')} ${chalk.cyan.bold('fridayy generate')} ${chalk.gray('→ Builds candidate MCP tools into fridayy.tools.json')}`);
|
|
59
|
+
console.log(` ${chalk.bold.white('Step 4:')} ${chalk.cyan.bold('fridayy review')} ${chalk.gray('→ Approve safe tools (e.g. fridayy review --approve-read)')}`);
|
|
60
|
+
console.log(` ${chalk.bold.white('Step 5:')} ${chalk.cyan.bold('fridayy start')} ${chalk.gray('→ Launches the live Model Context Protocol server')}\n`);
|
|
61
|
+
console.log(chalk.bold.hex('#b5179e')('================================================================================'));
|
|
62
|
+
console.log(chalk.bold.hex('#b5179e')(' 🤖 CONNECTING TO AI CLIENTS'));
|
|
63
|
+
console.log(chalk.bold.hex('#b5179e')('================================================================================\n'));
|
|
64
|
+
console.log(` ${chalk.bold('1. Claude Desktop')} (add to claude_desktop_config.json):`);
|
|
65
|
+
console.log(chalk.gray(` {`));
|
|
66
|
+
console.log(chalk.gray(` "mcpServers": {`));
|
|
67
|
+
console.log(chalk.gray(` "my-api": {`));
|
|
68
|
+
console.log(chalk.gray(` "command": "npx",`));
|
|
69
|
+
console.log(chalk.gray(` "args": ["fridayy", "start"],`));
|
|
70
|
+
console.log(chalk.gray(` "env": { "FRIDAYY_API_KEY": "your-api-key" }`));
|
|
71
|
+
console.log(chalk.gray(` }`));
|
|
72
|
+
console.log(chalk.gray(` }`));
|
|
73
|
+
console.log(chalk.gray(` }\n`));
|
|
74
|
+
console.log(` ${chalk.bold('2. Cursor IDE')} (Settings → Features → MCP):`);
|
|
75
|
+
console.log(chalk.gray(` Type: command | Command: npx fridayy start\n`));
|
|
76
|
+
console.log(` ${chalk.bold('3. Pointing AI to this Project:')}`);
|
|
77
|
+
console.log(` Simply point your AI agent to ${chalk.cyan.bold('point/AI_INSTRUCTIONS.md')}`);
|
|
78
|
+
console.log(` The AI will automatically understand your architecture and run necessary setup.\n`);
|
|
79
|
+
console.log(chalk.bold.hex('#00f5d4')('================================================================================'));
|
|
80
|
+
console.log(chalk.bold.hex('#00f5d4')(' 💡 PRO TIPS'));
|
|
81
|
+
console.log(chalk.bold.hex('#00f5d4')('================================================================================\n'));
|
|
82
|
+
console.log(` • Run ${chalk.cyan.bold('fridayy doctor')} anytime to check secrets, endpoints, and health.`);
|
|
83
|
+
console.log(` • Use ${chalk.cyan.bold('fridayy tools --approved')} to see active tools exposed to AI.`);
|
|
84
|
+
console.log(` • Use ${chalk.cyan.bold('fridayy start --transport sse --port 3000')} for remote network clients.\n`);
|
|
85
|
+
console.log(` ${chalk.cyan.bold('friday')} - ${chalk.gray('build once. connect everywhere.')}`);
|
|
86
|
+
console.log(` ${chalk.gray('Developed by sabarivasan')}\n`);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=use.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/cli/commands/use.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,SAAS,IAAI,OAAO,CAiCnC;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAGzC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { registerStartCommand } from './commands/start.js';
|
|
|
11
11
|
import { registerToolsCommand } from './commands/tools.js';
|
|
12
12
|
import { registerConfigCommand } from './commands/config.js';
|
|
13
13
|
import { registerDoctorCommand } from './commands/doctor.js';
|
|
14
|
+
import { registerUseCommand } from './commands/use.js';
|
|
14
15
|
import { printBanner } from './ui/banner.js';
|
|
15
16
|
import { runStartupAnimation } from './ui/startup-animation.js';
|
|
16
17
|
export function createCli() {
|
|
@@ -18,11 +19,12 @@ export function createCli() {
|
|
|
18
19
|
program
|
|
19
20
|
.name('fridayy')
|
|
20
21
|
.description('Universal Application-to-MCP Platform — Turn existing APIs into AI-ready MCP tools')
|
|
21
|
-
.version('1.0
|
|
22
|
+
.version('1.2.0')
|
|
22
23
|
.action(async () => {
|
|
23
24
|
printBanner();
|
|
24
25
|
await runStartupAnimation();
|
|
25
26
|
console.log('Available Commands:');
|
|
27
|
+
console.log(' fridayy use → Show guide, product vision & how it works');
|
|
26
28
|
console.log(' fridayy init → Initialize configuration');
|
|
27
29
|
console.log(' fridayy scan → Scan API endpoints and specs');
|
|
28
30
|
console.log(' fridayy generate → Generate candidate MCP tools');
|
|
@@ -32,6 +34,7 @@ export function createCli() {
|
|
|
32
34
|
console.log(' fridayy doctor → Run diagnostics and health check\n');
|
|
33
35
|
});
|
|
34
36
|
// Register subcommands
|
|
37
|
+
registerUseCommand(program);
|
|
35
38
|
registerInitCommand(program);
|
|
36
39
|
registerScanCommand(program);
|
|
37
40
|
registerGenerateCommand(program);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,oFAAoF,CAAC;SACjG,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,WAAW,EAAE,CAAC;QACd,MAAM,mBAAmB,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEL,uBAAuB;IACvB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,uBAAuB;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IAC9K,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/ui/banner.js
CHANGED
|
@@ -13,7 +13,7 @@ export function getBanner() {
|
|
|
13
13
|
const logo = `\n${line1}\n${line2}\n${line3}\n${line4}\n${line5}\n${line6}\n`;
|
|
14
14
|
const authorSub = chalk.gray(' sabarivasan\n');
|
|
15
15
|
const tagline = chalk.bold.white(' Universal Application-to-MCP Platform – Turn existing APIs into AI tools\n');
|
|
16
|
-
const badges = ` ${chalk.cyan.bold('v1.0
|
|
16
|
+
const badges = ` ${chalk.cyan.bold('v1.2.0')} ${chalk.bgHex('#5e17eb').white.bold(' MCP Standard ')} ${chalk.gray('•')} ${chalk.yellow('⚡')} Developed with ${chalk.red('❤️')} by ${chalk.hex('#00f5d4').bold('Sabarivasan')}\n`;
|
|
17
17
|
const repo = ` ${chalk.gray('Repository:')} ${chalk.underline.hex('#00d2ff')('https://github.com/Sabari-Vasan-SM/fridayy')}\n`;
|
|
18
18
|
return `${logo}${authorSub}${tagline}${badges}${repo}`;
|
|
19
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fridayy",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Universal Application-to-MCP Platform — Turn existing applications and APIs into AI-ready MCP tools",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
13
|
"bin",
|
|
14
|
+
"point",
|
|
14
15
|
"README.md",
|
|
15
16
|
"LICENSE"
|
|
16
17
|
],
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# AI Instructions & Autonomous Integration Guide
|
|
2
|
+
|
|
3
|
+
> **Directive for AI / LLM Agents**: When a developer points you to this file (`point/AI_INSTRUCTIONS.md` or `@point`), read these instructions to understand the project architecture, operational rules, and execute the necessary steps automatically to connect their application to MCP.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🎯 1. What is Fridayy?
|
|
8
|
+
|
|
9
|
+
**fridayy** is a developer-focused, local-first platform that converts existing APIs and applications (REST, OpenAPI, Node.js routes, Manual tools) into **Model Context Protocol (MCP)** tools.
|
|
10
|
+
|
|
11
|
+
### Core Philosophy:
|
|
12
|
+
* **Build once, connect everywhere.**
|
|
13
|
+
* **Zero code rewriting**: Discovers endpoints from existing specifications or source code.
|
|
14
|
+
* **Zero-trust security**: Granular permission classification (`READ`, `WRITE`, `DESTRUCTIVE`) with destructive actions (`DELETE`, `drop`, `purge`) blocked by default until human developer approval.
|
|
15
|
+
* **Zero secret leakage**: Credentials load strictly from environment variables (`FRIDAYY_*`) at execution time and are never exposed to LLMs.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 🤖 2. Autonomous Action Protocol for AI Assistants
|
|
20
|
+
|
|
21
|
+
When the developer asks you to set up, maintain, or connect their project using Fridayy, execute the following steps in order:
|
|
22
|
+
|
|
23
|
+
```mermaid
|
|
24
|
+
graph TD
|
|
25
|
+
A[1. Workspace Analysis] --> B[2. Initialize Fridayy]
|
|
26
|
+
B --> C[3. Scan Capabilities]
|
|
27
|
+
C --> D[4. Generate Tool Definitions]
|
|
28
|
+
D --> E[5. Review & Classify Permissions]
|
|
29
|
+
E --> F[6. Run Diagnostics]
|
|
30
|
+
F --> G[7. Connect to MCP Client]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Step 1: Analyze the Workspace
|
|
34
|
+
1. Check if an OpenAPI specification exists (`openapi.yaml`, `openapi.json`, `swagger.yaml`).
|
|
35
|
+
2. If no OpenAPI spec exists, check for Node.js route definitions (`Express`, `Fastify`, `Koa`).
|
|
36
|
+
3. Check target backend URL and port (default is `http://localhost:3000` or `http://localhost:4000`).
|
|
37
|
+
|
|
38
|
+
### Step 2: Initialize Configuration
|
|
39
|
+
Run:
|
|
40
|
+
```bash
|
|
41
|
+
npx fridayy init --yes
|
|
42
|
+
```
|
|
43
|
+
*Creates `fridayy.config.json` with detected settings.*
|
|
44
|
+
|
|
45
|
+
### Step 3: Scan Capabilities & Endpoints
|
|
46
|
+
Run:
|
|
47
|
+
```bash
|
|
48
|
+
npx fridayy scan
|
|
49
|
+
```
|
|
50
|
+
*Identifies all candidate endpoints, HTTP methods, and authentication schemes.*
|
|
51
|
+
|
|
52
|
+
### Step 4: Generate Candidate MCP Tools
|
|
53
|
+
Run:
|
|
54
|
+
```bash
|
|
55
|
+
npx fridayy generate
|
|
56
|
+
```
|
|
57
|
+
*Generates `fridayy.tools.json` containing standardized tool schemas, parameters, and risk classifications.*
|
|
58
|
+
|
|
59
|
+
### Step 5: Review & Classify Permissions
|
|
60
|
+
* **READ Tools** (`GET`): Safe to auto-approve.
|
|
61
|
+
```bash
|
|
62
|
+
npx fridayy review --approve-read
|
|
63
|
+
```
|
|
64
|
+
* **WRITE Tools** (`POST`, `PUT`, `PATCH`): Approve based on user intent.
|
|
65
|
+
* **DESTRUCTIVE Tools** (`DELETE`, `purge`, `cancel`): **DO NOT** approve destructive tools without explicitly asking the developer for confirmation.
|
|
66
|
+
|
|
67
|
+
### Step 6: Run Diagnostic Health Check
|
|
68
|
+
Run:
|
|
69
|
+
```bash
|
|
70
|
+
npx fridayy doctor
|
|
71
|
+
```
|
|
72
|
+
*Verifies schema integrity, environment variables, and target API connectivity.*
|
|
73
|
+
|
|
74
|
+
### Step 7: Configure MCP Client
|
|
75
|
+
Configure the user's AI client (Claude Desktop, Cursor, or Gemini) as follows:
|
|
76
|
+
|
|
77
|
+
#### For Claude Desktop (`claude_desktop_config.json`):
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"mcpServers": {
|
|
81
|
+
"fridayy": {
|
|
82
|
+
"command": "npx",
|
|
83
|
+
"args": ["fridayy", "start"],
|
|
84
|
+
"env": {
|
|
85
|
+
"FRIDAYY_API_KEY": "your_api_key_here"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### For Cursor IDE:
|
|
93
|
+
* **Settings** → **Features** → **MCP**
|
|
94
|
+
* **Type**: `command`
|
|
95
|
+
* **Command**: `npx fridayy start`
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 🏗️ 3. Architecture & Codebase Map
|
|
100
|
+
|
|
101
|
+
| Directory | Purpose | Key Files |
|
|
102
|
+
|---|---|---|
|
|
103
|
+
| `src/cli/` | Command line interface | `index.ts`, `commands/`, `ui/` |
|
|
104
|
+
| `src/core/schema/` | Schema converter & unifier | `types.ts`, `json-schema.ts` |
|
|
105
|
+
| `src/core/permissions/` | Permission classifier & gatekeeper | `classifier.ts`, `enforcer.ts` |
|
|
106
|
+
| `src/core/authentication/` | Secret isolation & token resolver | `manager.ts`, `secret-resolver.ts` |
|
|
107
|
+
| `src/core/validation/` | Parameter & schema validation | `validator.ts`, `config-schema.ts` |
|
|
108
|
+
| `src/adapters/` | Pluggable source adapters | `openapi/`, `nodejs/`, `rest/`, `manual/`, `registry.ts` |
|
|
109
|
+
| `src/mcp/` | Standards-compliant MCP Server | `server/fridayy-server.ts`, `tools/`, `resources/`, `prompts/` |
|
|
110
|
+
| `src/security/` | Rate limiting & audit logging | `rate-limiter.ts`, `audit-logger.ts`, `sanitizer.ts` |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 🛡️ 4. Security Rules for AI Agents
|
|
115
|
+
|
|
116
|
+
1. **Never Bypass Destructive Protection**: Never modify `fridayy.tools.json` to approve a `DESTRUCTIVE` tool unless the developer explicitly asked for that specific tool to be enabled.
|
|
117
|
+
2. **Never Commit Secrets**: Ensure all API tokens, basic auth passwords, and JWTs are loaded through `process.env.FRIDAYY_*` and never written in plaintext into `fridayy.config.json` or committed to Git.
|
|
118
|
+
3. **Validate Inputs**: Ensure tool arguments sent by models adhere to the JSON Schema generated by Fridayy.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 🔧 5. Extending with New Adapters (AI Guidance)
|
|
123
|
+
|
|
124
|
+
To add a new adapter (e.g. GraphQL, PostgreSQL, Python FastAPI):
|
|
125
|
+
1. Create `src/adapters/<name>/adapter.ts` extending `BaseAdapter` from `src/adapters/base.ts`.
|
|
126
|
+
2. Implement:
|
|
127
|
+
- `detect(context)`: Boolean capability check.
|
|
128
|
+
- `generateTools(context)`: Returns `FridayyToolDefinition[]`.
|
|
129
|
+
- `executeTool(tool, input, context)`: Dispatches runtime execution.
|
|
130
|
+
3. Register the new adapter instance in `src/adapters/registry.ts`.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Fridayy Project Context & Machine-Readable Spec
|
|
2
|
+
|
|
3
|
+
This document provides structured context for AI agents reading the codebase.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📌 Project Metadata
|
|
8
|
+
* **Name**: `fridayy`
|
|
9
|
+
* **Version**: `1.2.0`
|
|
10
|
+
* **Author**: `Sabarivasan`
|
|
11
|
+
* **Protocol**: Model Context Protocol (MCP) v1.6+
|
|
12
|
+
* **Repository**: `https://github.com/Sabari-Vasan-SM/fridayy`
|
|
13
|
+
* **License**: MIT
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🛠️ Data Model & Schemas
|
|
18
|
+
|
|
19
|
+
### FridayyToolDefinition
|
|
20
|
+
```typescript
|
|
21
|
+
interface FridayyToolDefinition {
|
|
22
|
+
id: string; // Unique ID (e.g. tool_get_products)
|
|
23
|
+
name: string; // Valid snake_case tool name (e.g. get_products)
|
|
24
|
+
description: string; // Human & AI-readable description
|
|
25
|
+
inputSchema: { // Unified JSON Schema Draft-7
|
|
26
|
+
type: 'object';
|
|
27
|
+
properties: Record<string, any>;
|
|
28
|
+
required: string[];
|
|
29
|
+
};
|
|
30
|
+
source: { // Source binding
|
|
31
|
+
type: 'openapi' | 'rest' | 'nodejs' | 'manual';
|
|
32
|
+
method?: string;
|
|
33
|
+
path?: string;
|
|
34
|
+
baseUrl?: string;
|
|
35
|
+
};
|
|
36
|
+
permissions: { // Permission classification
|
|
37
|
+
type: 'READ' | 'WRITE' | 'DESTRUCTIVE';
|
|
38
|
+
read: boolean;
|
|
39
|
+
write: boolean;
|
|
40
|
+
destructive: boolean;
|
|
41
|
+
};
|
|
42
|
+
risk: 'low' | 'medium' | 'high'; // Risk scoring
|
|
43
|
+
status: 'APPROVED' | 'PENDING' | 'BLOCKED' | 'REJECTED';
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🚦 Permission Matrix
|
|
50
|
+
|
|
51
|
+
| HTTP Method / Pattern | Classification | Risk Level | Default Status | Action Required |
|
|
52
|
+
|---|---|---|---|---|
|
|
53
|
+
| `GET`, `HEAD`, `OPTIONS` | `READ` | `low` | `APPROVED` | Ready for AI invocation |
|
|
54
|
+
| `POST`, `PUT`, `PATCH` | `WRITE` | `medium` | `PENDING` | Review before enabling |
|
|
55
|
+
| `DELETE`, `purge`, `erase`, `cancel` | `DESTRUCTIVE` | `high` | `BLOCKED` | Explicit human approval mandatory |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 🔌 Available Transports
|
|
60
|
+
1. **Stdio Transport**: Default standard I/O stream for local desktop AI clients (Claude Desktop, Cursor IDE).
|
|
61
|
+
2. **SSE Transport**: Server-Sent Events over HTTP for remote AI agents and web hooks (`--transport sse --port 3000`).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# AI Agent Prompt Snippets
|
|
2
|
+
|
|
3
|
+
Copy-paste any of the prompts below into Claude, ChatGPT, Cursor, Gemini, or Antigravity to perform automatic Fridayy tasks:
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### Prompt 1: Full Automatic API-to-MCP Setup
|
|
8
|
+
```text
|
|
9
|
+
Please read @point/AI_INSTRUCTIONS.md and automatically analyze my current project.
|
|
10
|
+
Detect my OpenAPI / REST endpoints, generate Fridayy tool definitions, approve all safe read-only tools, verify project health with 'fridayy doctor', and guide me on how to start the MCP server.
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
### Prompt 2: Safe Tool Review & Selective Approval
|
|
16
|
+
```text
|
|
17
|
+
Please review @point/PROJECT_CONTEXT.md and my generated fridayy.tools.json.
|
|
18
|
+
List all candidate tools, highlight any WRITE or DESTRUCTIVE tools that require confirmation, and help me approve only the tools needed for my specific task.
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
### Prompt 3: Add Custom Tool / Adapter Extension
|
|
24
|
+
```text
|
|
25
|
+
I want to add a custom adapter/tool to Fridayy.
|
|
26
|
+
Please check @point/AI_INSTRUCTIONS.md Section 5 for adapter extension rules, and help me implement a new BaseAdapter subclass for my backend.
|
|
27
|
+
```
|