Token导航 LogoToken导航TokenDH.com
SAS MCP Server logo
数据服务stdio官方级别未说明来源级核验

SAS MCP Server

MCP Server

一个用于在SAS Viya环境中执行SAS代码的模型上下文协议(MCP)服务器,支持OAuth2认证和多种部署模式。

工具数

26

提示词数

0

GitHub Stars

15

资源数

0
代码执行Python模型管理数据分析

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

sassoftware

提供方

sassoftware

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run app

详细介绍

SAS MCP服务器

用于在SAS Viya环境中执行SAS代码的模型上下文协议(MCP)服务器。

特性

  • 在SAS Viya计算上下文上执行SAS代码
  • 使用PKCE流进行OAuth2身份验证
  • 基于HTTP的MCP服务器与MCP客户端兼容

入门指南

先决条件

  • 必需

- Python 3.12+ - 紫外线0.8+ - SAS Viya环境 使用计算服务 - 为MCP设置Viya环境 - 看 configuration.md

  • 可选的

- 码头工人:请参阅

安装

  1. 克隆存储库:
git clone 
cd sas-mcp-server
  1. 安装依赖项
uv sync

注意:默认情况下,这将在项目的根目录中创建一个名为.vnv的虚拟环境。

如果由于某种原因未创建虚拟环境,请运行 uv venv 然后重新运行 uv sync.

用法

  1. 配置环境变量:
cp .env.sample .env

编辑 .env 并设置

VIYA_ENDPOINT=https://your-viya-server.com
  1. 启动MCP服务器(请参阅 选择部署模式 在......下面

选项A:HTTP模式 (预运行服务器,从MCP客户端连接)

uv run app

服务器将在以下时间可用 http://localhost:8134/mcp 默认情况下。身份验证是通过浏览器中的OAuth2-PKCE流处理的。

选项B:标准模式 (MCP客户端按需启动服务器)

VIYA_USERNAMEVIYA_PASSWORD 在你的 .env 文件,然后配置MCP客户端以直接启动服务器(见下文)。

选项C:Docker/Podman (集装箱化部署)

docker build -t sas-mcp-server .
docker run -e VIYA_ENDPOINT=https://your-viya-server.com -p 8134:8134 sas-mcp-server

选择部署模式

超文本传输协议工作室码头工人
它是如何运行的您单独启动的长时间运行的服务器MCP客户端按需生成它容器化HTTP服务器
认证OAuth2 PKCE流(浏览器弹出窗口)密码授予(中的凭据 .env)OAuth2-PKCE流(浏览器弹出窗口)
最佳多用户或共享设置;类似生产的环境单用户本地开发;快速实验团队部署;CI/CD;未安装Python的环境
需要Python+uvPython+uv仅限Docker或Podman
是否已存储凭据?否--用户以交互方式进行身份验证是--中的用户名/密码 .env否--用户以交互方式进行身份验证
MCP客户端配置将客户端指向 http://localhost:8134/mcp客户端运行 uv run app-stdio将客户端指向 http://host:8134/mcp

快速指导:

  • 开始还是探索? 使用 标准 --零设置超出 .env,您的MCP客户端管理服务器生命周期。
  • 需要安全的交互式身份验证? 使用 超文本传输协议 --没有存储密码,每个用户都通过浏览器进行身份验证。
  • 为团队部署还是在服务器上部署? 使用 码头工人 --可移植,不依赖于主机的Python,易于与编排器集成。
  • 使用Gemini CLI? 使用 标准 --Gemini CLI不支持HTTP模式或基于浏览器的OAuth。看 Gemini CLI配置.

可用工具

代码执行

  • execute_sas_code:执行SAS代码片段并检索执行结果(日志和列表输出)

数据发现(CAS管理)

  • list_cas_servers:列出可用的CAS服务器
  • list_caslibs:列出服务器上的CAS库
  • list_castables:列出CAS库中的表
  • get_catable_info:获取表元数据(行数、列数、大小)
  • get_castable_columns:获取列名、类型、标签、格式
  • get_catable_data:从CAS表中获取示例行

数据操作和文件

  • upload_data:将CSV数据上载到CAS表中
  • promote_table_to_more:在CAS中将表提升到全局范围
  • 列表文件:列出Viya文件服务中的文件
  • 上传文件:将文件上载到Viya文件服务
  • 下载文件:下载文件内容

报告和可视化

  • list_reports:列出可视化分析报告
  • 获取报告:获取报告元数据和定义
  • 获取报告图像:将报告部分渲染为图像

批处理作业

  • submit_batch_job:提交SAS作业以进行异步执行
  • get_job_status:检查作业状态
  • list_jobs:列出最近/正在运行的作业
  • cancel_job:取消正在运行的作业
  • get_job_log:检索作业日志

模型管理和评分

  • list_ml_项目:列出AutoML项目
  • create_ml_项目:创建新的AutoML项目
  • run_ml_项目:运行管道自动化
  • list_registered_models:列出存储库中的模型
  • list_models_and_decisions:列出已发布的MAS模块
  • 得分数据:根据已发布的模型对数据进行评分

提示模板

  • debug_sas_log:分析SAS日志中的错误及其根本原因解释
  • exploredata:生成数据分析SAS代码
  • 数据质量检查:生成DQ评估代码
  • 统计分析:设置带有诊断功能的统计工作流程
  • 优化as_code:审查和优化SAS代码
  • explain_sas-code:逐块代码解释
  • sas-macrobuilder:构建生产质量的SAS宏
  • 生成报告:生成ODS/PROC报告代码

MCP客户端配置

示例配置在 examples/ 文件夹。下面是常见客户端的快速入门片段。

VS代码/光标/克劳德代码(.vscode/mcp.json)

HTTP模式 (要求 uv run app 单独运行):

{
    "servers": {
        "sas-execution-mcp": {
            "url": "http://localhost:8134/mcp",
            "type": "http"
        }
    }
}

标准模式 (按需启动服务器):

{
    "servers": {
        "sas-execution-mcp": {
            "command": "uv",
            "args": ["run", "app-stdio"],
            "cwd": "${workspaceFolder}"
        }
    }
}

Gemini CLI(.gemini/settings.json)

Gemini CLI仅支持stdio模式。添加到您的 ~/.gemini/settings.json 或项目级别 .gemini/settings.json:

{
    "mcpServers": {
        "sas-viya-mcp": {
            "command": "uv",
            "args": ["run", "app-stdio"],
            "cwd": "/path/to/sas-mcp-server",
            "timeout": 60000
        }
    }
}
注:timeout 字段(以毫秒为单位)很重要-SAS Viya API调用可能需要比Gemini CLI默认值10秒更长的时间。A值 60000 建议使用(60秒)。集 cwd 走向你的绝对道路 sas-mcp-server 结账。

示例

通过MCP工具执行SAS代码:

data work.students;
input Name $ Age Grade $;
datalines;
Alice 20 A
Bob 22 B
;
run;

proc print data=work.students;
run;

______________________________________________________________________

有关更多详细信息、配置选项和部署选项,请参阅 例子 文件夹,并按照其中列出的说明进行操作。

测试

该项目包括两层测试: 单元测试 (快速,无需凭据)和 集成测试 (针对真实的SAS Viya实例运行)。

运行单元测试

单元测试验证工具模式、请求有效载荷和内部逻辑,而无需进行任何网络调用:

./run_tests.sh

或者直接通过pytest:

uv run python -m pytest -m "not integration" -v

运行集成测试

集成测试针对实时Viya环境调用每个工具。它们需要凭据,可以通过CLI参数或 .env:

使用 .env (套 VIYA_ENDPOINT, VIYA_USERNAME, VIYA_PASSWORD):

./run_tests.sh --integration

使用CLI参数:

./run_tests.sh --integration \
    --endpoint https://your-viya-server.com \
    --username youruser \
    --password yourpassword

仅集成测试 (跳过单元测试):

./run_tests.sh --integration-only

测试结构

文件描述
tests/test_tool_payloads.py所有26个工具的有效负载断言——验证URL路径、JSON正文结构、查询参数和标头
tests/test_integration.py针对真实Viya实例的端到端工作流测试
tests/test_tools.pyHTTP辅助函数的单元测试(_get_json, _post_json等等)
tests/test_viya_utils.pyViya计算会话和作业实用程序的单元测试
tests/test_mcp_server.pyMCP服务器和认证中间件的单元测试
tests/test_prompts.py快速模板渲染的单元测试
tests/test_config.py配置加载的单元测试

贡献

维护人员正在接受此项目的补丁和贡献。请阅读 贡献.md 有关向此项目提交贡献的详细信息。

许可和归属

除/static文件夹的内容外,此项目的许可证为 Apache 2.0许可证.satic文件夹中的元素归SAS所有,不在开源许可证下发布。SAS和所有其他SAS Institute股份有限公司的产品或服务名称是SAS Institute股份有限公司在美国和其他国家的注册商标或商标。®表示美国注册。

SAS软件(如SAS Viya)的单独商业许可证不包括在内,需要将这些功能与SAS软件一起使用。

所有引用的第三方商标均归其各自所有者所有,仅用于识别和参考目的,并不意味着商标所有者有任何附属关系或认可。

此项目需要使用以下内容:

  • Python,请参阅Python许可证 这里
  • FastMCP,基于Apache 2.0许可证
  • 根据BSD 3条款
  • starlette,根据BSD 3条款
  • httpx,在MIT许可下

目录标签

目录标签

代码执行Python模型管理数据分析SASViya本地部署自动化

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

26

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP