Pulumi Example Gen MCP
概述
内容详情
替代品
什么是Pulumi Example Generator?
这是一个专门为Pulumi基础设施即代码工具设计的示例生成服务,能够自动创建包含所有可能参数的资源构造示例代码,并填充合理的占位值。如何使用Pulumi Example Generator?
通过简单的配置即可接入Pulumi开发环境,支持多种编程语言输出,包括TypeScript和Go等。适用场景
适合Pulumi开发者快速获取资源定义模板、学习新资源使用方法,以及自动化文档生成等场景。主要功能
多语言支持
自动生成TypeScript、Go等多种Pulumi支持语言的示例代码
完整示例生成
包含资源的所有可能参数和嵌套结构,确保示例完整性
智能占位值
自动填充类型正确的占位值(字符串、数字、布尔值等)
优势
节省手动编写示例代码的时间
确保示例包含最新API参数
支持复杂嵌套结构的自动生成
与Pulumi生态无缝集成
局限性
生成的示例需要手动替换实际值
某些高级用法可能需要额外配置
目前不支持自定义示例模板
如何使用
安装服务
使用Go工具链安装MCP服务器
配置Pulumi
在Pulumi配置文件中添加MCP服务器设置
生成示例
通过Pulumi CLI或API请求示例生成
使用案例
快速获取S3 Bucket定义
开发AWS S3存储时需要快速查看所有可用参数
学习新资源用法
当使用新的Pulumi资源时,快速了解其结构和参数
常见问题
支持哪些编程语言?
目前主要支持TypeScript和Go,未来计划支持Python、C#等
生成的示例可以直接使用吗?
需要手动替换占位值为实际值,但结构完整可直接使用
如何添加自定义资源类型?
目前需要修改服务器代码,未来版本将支持插件扩展
相关资源
Pulumi官方文档
Pulumi基础设施即代码工具的官方文档
GitHub仓库
项目源代码和问题追踪
MCP协议说明
Model Context Protocol的规范文档
安装
复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。
🚀 Pulumi示例生成MCP服务器
这是一个Pulumi资源的MCP服务器,用于生成带有占位符值的完整构造函数示例。
🚀 快速开始
📦 安装指南
你可以使用以下命令安装最新版本的pulumi-example-gen-mcp:
go install github.com/corymhall/pulumi-example-gen-mcp@latest
⚙️ 配置说明
你需要按照如下JSON格式进行配置:
{
"mcpServers": {
"pulumi-example-gen": {
"command": "pulumi-example-gen-mcp",
}
}
}
💻 使用示例
基础用法
对于aws.s3.Bucket资源,该工具将生成如下示例:
TypeScript
const bucketResource = new aws.s3.Bucket("bucketResource", {
accelerationStatus: "string",
acl: "string",
bucket: "string",
bucketPrefix: "string",
corsRules: [{
allowedMethods: ["string"],
allowedOrigins: ["string"],
allowedHeaders: ["string"],
exposeHeaders: ["string"],
maxAgeSeconds: 0,
}],
forceDestroy: false,
grants: [{
permissions: ["string"],
type: "string",
id: "string",
uri: "string",
}],
lifecycleRules: [{
enabled: false,
abortIncompleteMultipartUploadDays: 0,
expiration: {
date: "string",
days: 0,
expiredObjectDeleteMarker: false,
},
id: "string",
noncurrentVersionExpiration: {
days: 0,
},
noncurrentVersionTransitions: [{
storageClass: "string",
days: 0,
}],
prefix: "string",
tags: {
string: "string",
},
transitions: [{
storageClass: "string",
date: "string",
days: 0,
}],
}],
logging: {
targetBucket: "string",
targetPrefix: "string",
},
objectLockConfiguration: {},
objectLockEnabled: false,
policy: "string",
region: "string",
replicationConfiguration: {
role: "string",
rules: [{
destination: {
bucket: "string",
accessControlTranslation: {
owner: "string",
},
accountId: "string",
metrics: {
minutes: 0,
status: "string",
},
replicaKmsKeyId: "string",
replicationTime: {
minutes: 0,
status: "string",
},
storageClass: "string",
},
status: "string",
deleteMarkerReplicationStatus: "string",
filter: {
prefix: "string",
tags: {
string: "string",
},
},
id: "string",
prefix: "string",
priority: 0,
sourceSelectionCriteria: {
sseKmsEncryptedObjects: {
enabled: false,
},
},
}],
},
requestPayer: "string",
serverSideEncryptionConfiguration: {
rule: {
applyServerSideEncryptionByDefault: {
sseAlgorithm: "string",
kmsMasterKeyId: "string",
},
bucketKeyEnabled: false,
},
},
tags: {
string: "string",
},
versioning: {
enabled: false,
mfaDelete: false,
},
website: {
errorDocument: "string",
indexDocument: "string",
redirectAllRequestsTo: "string",
routingRules: "string",
},
});
Go
_, err := s3.NewBucket(ctx, "bucketResource", &s3.BucketArgs{
AccelerationStatus: pulumi.String("string"),
Acl: pulumi.String("string"),
Bucket: pulumi.String("string"),
BucketPrefix: pulumi.String("string"),
CorsRules: s3.BucketCorsRuleArray{
&s3.BucketCorsRuleArgs{
AllowedMethods: pulumi.StringArray{
pulumi.String("string"),
},
AllowedOrigins: pulumi.StringArray{
pulumi.String("string"),
},
AllowedHeaders: pulumi.StringArray{
pulumi.String("string"),
},
ExposeHeaders: pulumi.StringArray{
pulumi.String("string"),
},
MaxAgeSeconds: pulumi.Int(0),
},
},
ForceDestroy: pulumi.Bool(false),
Grants: s3.BucketGrantArray{
&s3.BucketGrantArgs{
Permissions: pulumi.StringArray{
pulumi.String("string"),
},
Type: pulumi.String("string"),
Id: pulumi.String("string"),
Uri: pulumi.String("string"),
},
},
LifecycleRules: s3.BucketLifecycleRuleArray{
&s3.BucketLifecycleRuleArgs{
Enabled: pulumi.Bool(false),
AbortIncompleteMultipartUploadDays: pulumi.Int(0),
Expiration: &s3.BucketLifecycleRuleExpirationArgs{
Date: pulumi.String("string"),
Days: pulumi.Int(0),
ExpiredObjectDeleteMarker: pulumi.Bool(false),
},
Id: pulumi.String("string"),
NoncurrentVersionExpiration: &s3.BucketLifecycleRuleNoncurrentVersionExpirationArgs{
Days: pulumi.Int(0),
},
NoncurrentVersionTransitions: s3.BucketLifecycleRuleNoncurrentVersionTransitionArray{
&s3.BucketLifecycleRuleNoncurrentVersionTransitionArgs{
StorageClass: pulumi.String("string"),
Days: pulumi.Int(0),
},
},
Prefix: pulumi.String("string"),
Tags: pulumi.StringMap{
"string": pulumi.String("string"),
},
Transitions: s3.BucketLifecycleRuleTransitionArray{
&s3.BucketLifecycleRuleTransitionArgs{
StorageClass: pulumi.String("string"),
Date: pulumi.String("string"),
Days: pulumi.Int(0),
},
},
},
},
Logging: &s3.BucketLoggingTypeArgs{
TargetBucket: pulumi.String("string"),
TargetPrefix: pulumi.String("string"),
},
ObjectLockConfiguration: &s3.BucketObjectLockConfigurationTypeArgs{},
ObjectLockEnabled: pulumi.Bool(false),
Policy: pulumi.Any("string"),
Region: pulumi.String("string"),
ReplicationConfiguration: &s3.BucketReplicationConfigurationArgs{
Role: pulumi.String("string"),
Rules: s3.BucketReplicationConfigurationRuleArray{
&s3.BucketReplicationConfigurationRuleArgs{
Destination: &s3.BucketReplicationConfigurationRuleDestinationArgs{
Bucket: pulumi.String("string"),
AccessControlTranslation: &s3.BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs{
Owner: pulumi.String("string"),
},
AccountId: pulumi.String("string"),
Metrics: &s3.BucketReplicationConfigurationRuleDestinationMetricsArgs{
Minutes: pulumi.Int(0),
Status: pulumi.String("string"),
},
ReplicaKmsKeyId: pulumi.String("string"),
ReplicationTime: &s3.BucketReplicationConfigurationRuleDestinationReplicationTimeArgs{
Minutes: pulumi.Int(0),
Status: pulumi.String("string"),
},
StorageClass: pulumi.String("string"),
},
Status: pulumi.String("string"),
DeleteMarkerReplicationStatus: pulumi.String("string"),
Filter: &s3.BucketReplicationConfigurationRuleFilterArgs{
Prefix: pulumi.String("string"),
Tags: pulumi.StringMap{
"string": pulumi.String("string"),
},
},
Id: pulumi.String("string"),
Prefix: pulumi.String("string"),
Priority: pulumi.Int(0),
SourceSelectionCriteria: &s3.BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs{
SseKmsEncryptedObjects: &s3.BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{
Enabled: pulumi.Bool(false),
},
},
},
},
},
RequestPayer: pulumi.String("string"),
ServerSideEncryptionConfiguration: &s3.BucketServerSideEncryptionConfigurationTypeArgs{
Rule: &s3.BucketServerSideEncryptionConfigurationRuleArgs{
ApplyServerSideEncryptionByDefault: &s3.BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{
SseAlgorithm: pulumi.String("string"),
KmsMasterKeyId: pulumi.String("string"),
},
BucketKeyEnabled: pulumi.Bool(false),
},
},
Tags: pulumi.StringMap{
"string": pulumi.String("string"),
},
Versioning: &s3.BucketVersioningTypeArgs{
Enabled: pulumi.Bool(false),
MfaDelete: pulumi.Bool(false),
},
Website: &s3.BucketWebsiteArgs{
ErrorDocument: pulumi.String("string"),
IndexDocument: pulumi.String("string"),
RedirectAllRequestsTo: pulumi.String("string"),
RoutingRules: pulumi.String("string"),
},
})
替代品

Vestige
Vestige是一个基于认知科学的AI记忆引擎,通过实现预测误差门控、FSRS-6间隔重复、记忆梦境等29个神经科学模块,为AI提供长期记忆能力。包含3D可视化仪表板和21个MCP工具,完全本地运行,无需云端。
Rust
4.5K
4.5分
M
Moltbrain
MoltBrain是一个为OpenClaw、MoltBook和Claude Code设计的长期记忆层插件,能够自动学习和回忆项目上下文,提供智能搜索、观察记录、分析统计和持久化存储功能。
TypeScript
5.1K
4.5分

Bm.md
一个功能丰富的Markdown排版工具,支持多种样式主题和平台适配,提供实时编辑预览、图片导出和API集成能力
TypeScript
4.4K
5分
S
Security Detections MCP
Security Detections MCP 是一个基于Model Context Protocol的服务器,允许LLM查询统一的安全检测规则数据库,涵盖Sigma、Splunk ESCU、Elastic和KQL格式。最新3.0版本升级为自主检测工程平台,可自动从威胁情报中提取TTPs、分析覆盖差距、生成SIEM原生格式检测规则、运行测试并验证。项目包含71+工具、11个预构建工作流提示和知识图谱系统,支持多SIEM平台。
TypeScript
6.0K
4分

Paperbanana
PaperBanana是一个自动化生成学术图表和统计图的智能框架,支持从文本描述生成高质量的论文插图,采用多智能体管道和迭代优化,提供CLI、Python API和MCP服务器等多种使用方式。
Python
7.7K
5分

Better Icons
一个提供超过20万图标搜索和检索的MCP服务器和CLI工具,支持150多个图标库,帮助AI助手和开发者快速获取和使用图标。
TypeScript
6.7K
4.5分

Assistant Ui
assistant-ui是一个开源TypeScript/React库,用于快速构建生产级AI聊天界面,提供可组合的UI组件、流式响应、无障碍访问等功能,支持多种AI后端和模型。
TypeScript
7.3K
5分
A
Apify MCP Server
Apify MCP服务器是一个基于模型上下文协议(MCP)的工具,允许AI助手通过数千个现成的爬虫、抓取器和自动化工具(Apify Actor)从社交媒体、搜索引擎、电商等网站提取数据。它支持OAuth和Skyfire代理支付,可通过HTTPS端点或本地stdio方式集成到Claude、VS Code等MCP客户端中。
TypeScript
6.5K
5分

Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
75.9K
4.5分

Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
151.0K
5分

Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
84.5K
4.3分

Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
106.8K
4.7分

Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
50.3K
4.5分

Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
32.1K
4.8分

Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
63.8K
4.8分

Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
56.5K
5分
