mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
Add project MCP configuration, launchers, local configuration templates, and offline regression tests for TAPD, Playwright, and DBHub.
35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
"""Launch Node or Python TAPD MCP using only project-local credentials."""
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.dont_write_bytecode = True
|
|
base = Path(__file__).resolve().parent
|
|
sys.path.insert(0, str(base.parent))
|
|
from mcp_runtime import execute, load_config, resolve_command
|
|
|
|
try:
|
|
keys = {'TAPD_WORKSPACE_ID', 'TAPD_CURRENT_USER', 'TAPD_API_TOKEN',
|
|
'TAPD_MCP_ENTRY', 'TAPD_API_BASE_URL', 'TAPD_BASE_URL'}
|
|
local = load_config(base, keys, {'TAPD_WORKSPACE_ID', 'TAPD_CURRENT_USER',
|
|
'TAPD_API_TOKEN', 'TAPD_MCP_ENTRY'})
|
|
runtime, command = resolve_command(local, 'TAPD_MCP_ENTRY')
|
|
env = os.environ.copy()
|
|
for key in ('TAPD_API_USER', 'TAPD_API_PASSWORD', 'TAPD_ACCESS_TOKEN',
|
|
'TAPD_API_BASE_URL', 'TAPD_BASE_URL', 'CURRENT_USER_NICK'):
|
|
env.pop(key, None)
|
|
env.update({key: local[key] for key in ('TAPD_WORKSPACE_ID', 'TAPD_CURRENT_USER', 'TAPD_API_TOKEN')})
|
|
if runtime == 'python':
|
|
env['TAPD_ACCESS_TOKEN'] = local['TAPD_API_TOKEN']
|
|
env['CURRENT_USER_NICK'] = local['TAPD_CURRENT_USER']
|
|
env['TAPD_API_BASE_URL'] = local.get('TAPD_API_BASE_URL') or 'https://api.tapd.cn'
|
|
env['TAPD_BASE_URL'] = local.get('TAPD_BASE_URL') or 'https://www.tapd.cn'
|
|
command.extend(['--mode', 'stdio'])
|
|
else:
|
|
for key in ('TAPD_API_BASE_URL', 'TAPD_BASE_URL'):
|
|
if local.get(key):
|
|
env[key] = local[key]
|
|
execute(command, env)
|
|
except (OSError, ValueError, KeyError, TypeError):
|
|
sys.exit('TAPD MCP 启动失败;请检查 .codex/tapd_mcp/.env.local 的字段、入口及解释器')
|