fa-mcp-sdk 0.3.16 → 0.3.18
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 +1 -1
- package/cli-template/.claude/agents/architect.md +99 -99
- package/cli-template/.claude/agents/auditor.md +92 -92
- package/cli-template/.claude/agents/fa-mcp-sdk.md +1 -1
- package/cli-template/.claude/agents/planner.md +122 -122
- package/cli-template/.claude/agents/prd-writer.md +88 -88
- package/cli-template/.claude/agents/refactor.md +74 -74
- package/cli-template/.claude/agents/worker.md +132 -132
- package/cli-template/CLAUDE.md +1 -1
- package/cli-template/FA-MCP-SDK-DOC/01-getting-started.md +1 -1
- package/cli-template/FA-MCP-SDK-DOC/03-configuration.md +3 -0
- package/cli-template/FA-MCP-SDK-DOC/04-authentication.md +77 -4
- package/cli-template/FA-MCP-SDK-DOC/05-ad-authorization.md +35 -16
- package/cli-template/README.md +105 -105
- package/cli-template/package.json +2 -2
- package/cli-template/prompt-example-new-MCP.md +2 -1
- package/cli-template/prompt_2026-03-17_13-53.md +15 -0
- package/cli-template/r/TEST HTTP.xml +9 -9
- package/cli-template/r/TEST SSE.xml +5 -5
- package/cli-template/r/TEST STDIO.xml +5 -5
- package/cli-template/r/generate-token.xml +13 -13
- package/cli-template/r/lint-fix-build.xml +12 -12
- package/cli-template/r/remove-nul.xml +11 -11
- package/config/custom-environment-variables.yaml +1 -0
- package/config/default.yaml +3 -0
- package/config/development.yaml +4 -4
- package/config/production.yaml +4 -4
- package/dist/core/_types_/config.d.ts +1 -0
- package/dist/core/_types_/config.d.ts.map +1 -1
- package/dist/core/auth/ip-check.d.ts +18 -0
- package/dist/core/auth/ip-check.d.ts.map +1 -0
- package/dist/core/auth/ip-check.js +148 -0
- package/dist/core/auth/ip-check.js.map +1 -0
- package/dist/core/auth/jwt.d.ts +1 -0
- package/dist/core/auth/jwt.d.ts.map +1 -1
- package/dist/core/auth/jwt.js +15 -1
- package/dist/core/auth/jwt.js.map +1 -1
- package/dist/core/auth/multi-auth.d.ts.map +1 -1
- package/dist/core/auth/multi-auth.js +19 -14
- package/dist/core/auth/multi-auth.js.map +1 -1
- package/dist/core/auth/token-generator/ntlm/ntlm-templates.js +221 -221
- package/dist/core/web/static/token-gen/index.html +9 -0
- package/dist/core/web/static/token-gen/logout.svg +4 -4
- package/dist/core/web/static/token-gen/script.js +7 -1
- package/dist/core/web/static/token-gen/user.svg +4 -4
- package/package.json +1 -1
- package/scripts/publish.sh +78 -78
- package/scripts/update-doc.js +18 -18
- package/config/local-2.yaml +0 -20
- package/config/local.yaml +0 -101
package/scripts/publish.sh
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
expected_branch="master"
|
|
4
|
-
|
|
5
|
-
c='\033[0;35m'
|
|
6
|
-
y='\033[0;33m'
|
|
7
|
-
r='\033[0;31m'
|
|
8
|
-
c0='\033[0;0m'
|
|
9
|
-
g='\033[0;32m'
|
|
10
|
-
|
|
11
|
-
echo_r() { /bin/echo -e ${r}"$1"${c0}; };
|
|
12
|
-
|
|
13
|
-
# shellcheck disable=SC2120
|
|
14
|
-
exit_on_error(){
|
|
15
|
-
if [[ $? -ne 0 ]] ; then
|
|
16
|
-
if [[ -n "$1" ]]; then
|
|
17
|
-
echo_r "$1";
|
|
18
|
-
else
|
|
19
|
-
echo -e "${r}**** ERROR ****${c0}"
|
|
20
|
-
fi;
|
|
21
|
-
read -p "Press any key to resume ..."
|
|
22
|
-
exit 0
|
|
23
|
-
fi
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
set +e
|
|
27
|
-
|
|
28
|
-
branch_name=$(git symbolic-ref --short HEAD)
|
|
29
|
-
exit_on_error "$y**** Version will not be bumped since retcode is not equals 0 ****$c0"
|
|
30
|
-
|
|
31
|
-
if [[ "$branch_name" != "$expected_branch" ]] ; then
|
|
32
|
-
echo -e "${y}**** git branch should be ${c}{$expected_branch}${y}, current: ${c}${branch_name}${y} ****$c0"
|
|
33
|
-
read -p "Press any key to resume ..."
|
|
34
|
-
exit 0
|
|
35
|
-
fi
|
|
36
|
-
|
|
37
|
-
npm run cb
|
|
38
|
-
exit_on_error "$y**** Typescript build failed ****$c0"
|
|
39
|
-
|
|
40
|
-
old_version=''
|
|
41
|
-
new_version=''
|
|
42
|
-
|
|
43
|
-
update_version(){
|
|
44
|
-
old_version=`cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]'`
|
|
45
|
-
echo -e "$c**** Old version is $g$old_version$c ****$c0"
|
|
46
|
-
version_split=( ${old_version//./ } )
|
|
47
|
-
major=${version_split[0]:-0}
|
|
48
|
-
minor=${version_split[1]:-0}
|
|
49
|
-
patch=${version_split[2]:-0}
|
|
50
|
-
let "patch=patch+1"
|
|
51
|
-
new_version="${major}.${minor}.${patch}"
|
|
52
|
-
|
|
53
|
-
repo=`cat package.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]'`
|
|
54
|
-
echo -e "$c**** Bumping version of $g$repo$c: $y$old_version$c -> $g$new_version$c ****$c0"
|
|
55
|
-
sed -i -e "0,/$old_version/s/$old_version/$new_version/" package.json
|
|
56
|
-
# Update the dependency version in cli-template/package.json: "fa-mcp-sdk": "^<new_version>"
|
|
57
|
-
# Version match is built on a regular expression that allows any current version (with an optional ^)
|
|
58
|
-
sed -i -E "s/(\"fa-mcp-sdk\":\s*\")\^?[^\"]+(\"[,\r\n\s]*)/\1^${new_version}\2/" cli-template/package.json
|
|
59
|
-
echo -e "$g"
|
|
60
|
-
npm version 2>&1 | head -2 | tail -1
|
|
61
|
-
echo -e "$c0"
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
update_version
|
|
66
|
-
exit_on_error
|
|
67
|
-
|
|
68
|
-
git add --all
|
|
69
|
-
exit_on_error
|
|
70
|
-
|
|
71
|
-
git commit --no-verify -m "$new_version"
|
|
72
|
-
exit_on_error
|
|
73
|
-
|
|
74
|
-
git push origin refs/heads/${expected_branch}:${expected_branch}
|
|
75
|
-
exit_on_error
|
|
76
|
-
# npm pack --dry-run
|
|
77
|
-
npm publish
|
|
78
|
-
read -p "Press any key to resume ..."
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
expected_branch="master"
|
|
4
|
+
|
|
5
|
+
c='\033[0;35m'
|
|
6
|
+
y='\033[0;33m'
|
|
7
|
+
r='\033[0;31m'
|
|
8
|
+
c0='\033[0;0m'
|
|
9
|
+
g='\033[0;32m'
|
|
10
|
+
|
|
11
|
+
echo_r() { /bin/echo -e ${r}"$1"${c0}; };
|
|
12
|
+
|
|
13
|
+
# shellcheck disable=SC2120
|
|
14
|
+
exit_on_error(){
|
|
15
|
+
if [[ $? -ne 0 ]] ; then
|
|
16
|
+
if [[ -n "$1" ]]; then
|
|
17
|
+
echo_r "$1";
|
|
18
|
+
else
|
|
19
|
+
echo -e "${r}**** ERROR ****${c0}"
|
|
20
|
+
fi;
|
|
21
|
+
read -p "Press any key to resume ..."
|
|
22
|
+
exit 0
|
|
23
|
+
fi
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set +e
|
|
27
|
+
|
|
28
|
+
branch_name=$(git symbolic-ref --short HEAD)
|
|
29
|
+
exit_on_error "$y**** Version will not be bumped since retcode is not equals 0 ****$c0"
|
|
30
|
+
|
|
31
|
+
if [[ "$branch_name" != "$expected_branch" ]] ; then
|
|
32
|
+
echo -e "${y}**** git branch should be ${c}{$expected_branch}${y}, current: ${c}${branch_name}${y} ****$c0"
|
|
33
|
+
read -p "Press any key to resume ..."
|
|
34
|
+
exit 0
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
npm run cb
|
|
38
|
+
exit_on_error "$y**** Typescript build failed ****$c0"
|
|
39
|
+
|
|
40
|
+
old_version=''
|
|
41
|
+
new_version=''
|
|
42
|
+
|
|
43
|
+
update_version(){
|
|
44
|
+
old_version=`cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]'`
|
|
45
|
+
echo -e "$c**** Old version is $g$old_version$c ****$c0"
|
|
46
|
+
version_split=( ${old_version//./ } )
|
|
47
|
+
major=${version_split[0]:-0}
|
|
48
|
+
minor=${version_split[1]:-0}
|
|
49
|
+
patch=${version_split[2]:-0}
|
|
50
|
+
let "patch=patch+1"
|
|
51
|
+
new_version="${major}.${minor}.${patch}"
|
|
52
|
+
|
|
53
|
+
repo=`cat package.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]'`
|
|
54
|
+
echo -e "$c**** Bumping version of $g$repo$c: $y$old_version$c -> $g$new_version$c ****$c0"
|
|
55
|
+
sed -i -e "0,/$old_version/s/$old_version/$new_version/" package.json
|
|
56
|
+
# Update the dependency version in cli-template/package.json: "fa-mcp-sdk": "^<new_version>"
|
|
57
|
+
# Version match is built on a regular expression that allows any current version (with an optional ^)
|
|
58
|
+
sed -i -E "s/(\"fa-mcp-sdk\":\s*\")\^?[^\"]+(\"[,\r\n\s]*)/\1^${new_version}\2/" cli-template/package.json
|
|
59
|
+
echo -e "$g"
|
|
60
|
+
npm version 2>&1 | head -2 | tail -1
|
|
61
|
+
echo -e "$c0"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
update_version
|
|
66
|
+
exit_on_error
|
|
67
|
+
|
|
68
|
+
git add --all
|
|
69
|
+
exit_on_error
|
|
70
|
+
|
|
71
|
+
git commit --no-verify -m "$new_version"
|
|
72
|
+
exit_on_error
|
|
73
|
+
|
|
74
|
+
git push origin refs/heads/${expected_branch}:${expected_branch}
|
|
75
|
+
exit_on_error
|
|
76
|
+
# npm pack --dry-run
|
|
77
|
+
npm publish
|
|
78
|
+
read -p "Press any key to resume ..."
|
package/scripts/update-doc.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { cpSync, existsSync, rmSync } from 'fs';
|
|
3
|
-
import { join } from 'path';
|
|
4
|
-
|
|
5
|
-
const src = join(process.cwd(), './node_modules/fa-mcp-sdk/cli-template/FA-MCP-SDK-DOC');
|
|
6
|
-
const dest = join(process.cwd(), 'FA-MCP-SDK-DOC');
|
|
7
|
-
|
|
8
|
-
if (!existsSync(src)) {
|
|
9
|
-
console.error('Source not found:', src);
|
|
10
|
-
process.exit(1);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (existsSync(dest)) {
|
|
14
|
-
rmSync(dest, { recursive: true });
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
cpSync(src, dest, { recursive: true });
|
|
18
|
-
console.log('FA-MCP-SDK-DOC updated');
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { cpSync, existsSync, rmSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
|
|
5
|
+
const src = join(process.cwd(), './node_modules/fa-mcp-sdk/cli-template/FA-MCP-SDK-DOC');
|
|
6
|
+
const dest = join(process.cwd(), 'FA-MCP-SDK-DOC');
|
|
7
|
+
|
|
8
|
+
if (!existsSync(src)) {
|
|
9
|
+
console.error('Source not found:', src);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (existsSync(dest)) {
|
|
14
|
+
rmSync(dest, { recursive: true });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
cpSync(src, dest, { recursive: true });
|
|
18
|
+
console.log('FA-MCP-SDK-DOC updated');
|
package/config/local-2.yaml
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
consul:
|
|
2
|
-
agent:
|
|
3
|
-
dev:
|
|
4
|
-
dc: 'dc-dev'
|
|
5
|
-
host: 'consul.entapp.work'
|
|
6
|
-
token: db56c39b-4b3f-f995-f2e6-6b7c5ab76fa8
|
|
7
|
-
prd:
|
|
8
|
-
dc: 'dc-prd'
|
|
9
|
-
host: 'consul.entapp.work'
|
|
10
|
-
token: 4701c873-9af3-e9a5-cd81-3a0184a5d898
|
|
11
|
-
reg:
|
|
12
|
-
host: MSK-AITE01-AP01.office.finam.ru
|
|
13
|
-
# host: MSK-AITR01-AP01.office.finam.ru
|
|
14
|
-
token: db56c39b-4b3f-f995-f2e6-6b7c5ab76fa8
|
|
15
|
-
service:
|
|
16
|
-
enable: true
|
|
17
|
-
instance: ws1170
|
|
18
|
-
envCode: # Used to generate the service ID
|
|
19
|
-
prod: aitr01
|
|
20
|
-
dev: aite01
|
package/config/local.yaml
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
agentTester:
|
|
2
|
-
enabled: true
|
|
3
|
-
useAuth: false
|
|
4
|
-
openAi:
|
|
5
|
-
# apiKeyName: aite-ktalk-s
|
|
6
|
-
# apiKey: sk-vkB8ptp1G5b1UKaSZwsFeQ
|
|
7
|
-
apiKeyName: aitr-ktalk-s
|
|
8
|
-
apiKey: sk-iZDpZ_zyxaeUpSVkxVJQWg
|
|
9
|
-
# apiKeyName: aitech-vvmakarov
|
|
10
|
-
# apiKey: sk-KggHAQhePqIHesTvgSRLZg
|
|
11
|
-
baseURL: https://litellm.finam.ru/v1
|
|
12
|
-
# baseURL: http://NYX-AITE01-PR01.corp.whotrades.eu/v1
|
|
13
|
-
ad:
|
|
14
|
-
domains:
|
|
15
|
-
OFFICE:
|
|
16
|
-
controllers:
|
|
17
|
-
- 'ldap://prdc1.office.finam.ru'
|
|
18
|
-
- 'ldap://prdc2.office.finam.ru'
|
|
19
|
-
default: true
|
|
20
|
-
password: International2025%
|
|
21
|
-
username: aite01-ldap-s
|
|
22
|
-
WTE:
|
|
23
|
-
controllers:
|
|
24
|
-
- 'ldap://prdc1.corp.whotrades.eu'
|
|
25
|
-
- 'ldap://prdc2.corp.whotrades.eu'
|
|
26
|
-
password: International2025%
|
|
27
|
-
username: aite01-ldap-s
|
|
28
|
-
|
|
29
|
-
consul:
|
|
30
|
-
agent:
|
|
31
|
-
dev:
|
|
32
|
-
dc: 'dc-dev'
|
|
33
|
-
host: 'consul.entapp.work'
|
|
34
|
-
token: db56c39b-4b3f-f995-f2e6-6b7c5ab76fa8
|
|
35
|
-
prd:
|
|
36
|
-
dc: 'dc-prd'
|
|
37
|
-
host: 'consul.entapp.work'
|
|
38
|
-
token: 4701c873-9af3-e9a5-cd81-3a0184a5d898
|
|
39
|
-
reg:
|
|
40
|
-
host: MSK-AITE01-AP01.office.finam.ru
|
|
41
|
-
# host: MSK-AITR01-AP01.office.finam.ru
|
|
42
|
-
token: db56c39b-4b3f-f995-f2e6-6b7c5ab76fa8
|
|
43
|
-
service:
|
|
44
|
-
enable: true
|
|
45
|
-
instance: ws1170
|
|
46
|
-
envCode: # Used to generate the service ID
|
|
47
|
-
prod: aitr01
|
|
48
|
-
dev: aite01
|
|
49
|
-
|
|
50
|
-
db:
|
|
51
|
-
postgres:
|
|
52
|
-
dbs:
|
|
53
|
-
main:
|
|
54
|
-
database: slava
|
|
55
|
-
host: msk-aite01-ap01
|
|
56
|
-
port: 5432
|
|
57
|
-
user: csbot
|
|
58
|
-
password: yxxfdZwTAkpz
|
|
59
|
-
usedExtensions:
|
|
60
|
-
- pgvector
|
|
61
|
-
|
|
62
|
-
logger:
|
|
63
|
-
level: info
|
|
64
|
-
useFileLogger: false # To use or not to use logging to a file
|
|
65
|
-
dir: ''
|
|
66
|
-
|
|
67
|
-
mcp:
|
|
68
|
-
transportType: http # 'stdio' or 'http'
|
|
69
|
-
toolAnswerAs: text # text | structuredContent
|
|
70
|
-
|
|
71
|
-
swagger:
|
|
72
|
-
servers: # An array of servers that will be added to swagger docs
|
|
73
|
-
- url: http://localhost:9876
|
|
74
|
-
description: "Local server"
|
|
75
|
-
|
|
76
|
-
webServer:
|
|
77
|
-
port: 9876
|
|
78
|
-
auth:
|
|
79
|
-
enabled: true
|
|
80
|
-
# An array of fixed tokens that pass to the MCP (use only for MCPs with green data or for development)
|
|
81
|
-
permanentServerTokens: ['test-perm-token']
|
|
82
|
-
jwtToken:
|
|
83
|
-
# Symmetric encryption key to generate a token for this MCP
|
|
84
|
-
encryptKey: '66666666-7777-8888-9999-000000000000'
|
|
85
|
-
# If webServer.auth.enabled and the parameter true, the service name and the service specified in the token will be checked
|
|
86
|
-
checkMCPName: true
|
|
87
|
-
basic:
|
|
88
|
-
username: vpupkin
|
|
89
|
-
password: '1'
|
|
90
|
-
|
|
91
|
-
# ========================================================================
|
|
92
|
-
# ADMIN PANEL AUTHENTICATION
|
|
93
|
-
# Token generation page available at /admin endpoint
|
|
94
|
-
# Supports 4 authentication methods: permanentServerTokens, basic, jwtToken, ntlm
|
|
95
|
-
# ========================================================================
|
|
96
|
-
adminAuth:
|
|
97
|
-
enabled: false
|
|
98
|
-
# Authentication type for admin panel: 'permanentServerTokens' | 'basic' | 'jwtToken' | 'ntlm'
|
|
99
|
-
# For permanentServerTokens, basic, jwtToken - uses credentials from webServer.auth section
|
|
100
|
-
# For ntlm - uses AD configuration from ad.domains section (no additional credentials needed)
|
|
101
|
-
type: 'jwtToken'
|