添加mcp配置

This commit is contained in:
2026-01-15 17:34:22 +08:00
parent 0e4a85551f
commit d3bf64ae61
21 changed files with 1601 additions and 275 deletions

View File

@@ -0,0 +1,13 @@
from pydantic import BaseModel, ConfigDict
class BaseSchema(BaseModel):
model_config = ConfigDict(
extra="ignore",
use_enum_values=True,
from_attributes=True,
validate_assignment=True,
populate_by_name=True,
coerce_numbers_to_str=True,
arbitrary_types_allowed=True,
)

View File

@@ -0,0 +1,58 @@
from typing import AnyStr, List
from wecom.schemas.base import BaseSchema
class CreateDepartmentParams(BaseSchema):
"""
创建部门
@param name: 部门名称。长度限制为1~32个字节字符不能包括\:?”<>
@param name_en: 英文名称
@param parentid: 父部门id。根部门id为1
@param order: 在父部门中的次序值。order值小的排序靠前。
@param id: 部门id整型。指定时必须大于1不指定时则自动生成
"""
name: str
name_en: str | None = None
parentid: int
order: int | None = None
id: int | None = None
class UpdateDepartmentParams(CreateDepartmentParams): ...
class UpdateDepartmentInfo(BaseSchema):
errcode: int
errmsg: AnyStr
class CreateDepartmentInfo(BaseSchema):
errcode: int
errmsg: AnyStr
id: int
class DepartmentInfo(BaseSchema):
"""
部门单体响应数据
"""
id: int
name: AnyStr
name_en: AnyStr | None = None
department_leader: List[str] | None = None
parentid: int | None = None
order: int | None = None
class DepartmentInfo(BaseSchema):
"""
部门整体响应数据
"""
errcode: int
errmsg: AnyStr
department: List[DepartmentInfo]

View File

@@ -0,0 +1,94 @@
from typing import AnyStr, Literal
from wecom.schemas.base import BaseSchema
class MessageParams(BaseSchema):
"""
发送消息参数
各类消息的参数详情 https://developer.work.weixin.qq.com/document/path/90236
根据msgtype的不同选择对应的消息内容填充即可
@param touser: 指定接收消息的成员成员ID列表多个接收者用|分隔最多支持1000个
@param toparty: 指定接收消息的部门部门ID列表多个接收者用|分隔最多支持100个。
@param totag: 指定接收消息的标签标签ID列表多个接收者用|分隔最多支持100个。
@param msgtype: 消息类型此时固定为text
@param agentid: 企业应用的id整型。企业内部开发可在应用的设置页面查看第三方服务商可通过接口 获取企业授权信息 获取该参数值
@param safe: 表示是否是保密消息0表示可对外分享1表示不能分享且内容显示水印默认为0
@param enable_id_trans: 表示是否开启id转译0表示否1表示是默认0。仅第三方应用需要用到企业自建应用可以忽略。
@param enable_duplicate_check: 表示是否开启重复消息检查0表示否1表示是默认0
@param duplicate_check_interval: 表示是否重复消息检查的时间间隔默认1800s最大不超过4小时
touser、toparty、totag不能同时为空后面不再强调
"""
touser: AnyStr | None = None
toparty: AnyStr | None = None
totag: AnyStr | None = None
msgtype: Literal[
"text", "image", "voice", "video", "textcard", "news", "mpnews", "markdown"
]
agentid: int
# 各种类型的消息内容
text: dict | None = None
voice: dict | None = None
video: dict | None = None
file: dict | None = None
textcard: dict | None = None
news: dict | None = None
mpnews: dict | None = None
markdown: dict | None = None
safe: int = 0
enable_id_trans: int = 0
enable_duplicate_check: int = 0
duplicate_check_interval: int = 1800
class SendMessageInfo(BaseSchema):
"""
发送消息响应数据
"""
errcode: int
errmsg: AnyStr
invaliduser: AnyStr | None = None
invalidparty: AnyStr | None = None
invalidtag: AnyStr | None = None
unlicenseduser: AnyStr | None = None
msgid: AnyStr | None = None
response_code: AnyStr | None = None
class SendMessageInvalid(BaseSchema):
"""
发送消息失败响应数据
"""
errmsg: AnyStr
invaliduser: AnyStr | None = None
invalidparty: AnyStr | None = None
invalidtag: AnyStr | None = None
unlicenseduser: AnyStr | None = None
class RecallMessageParams(BaseSchema):
"""
撤回消息请求参数
"""
msgid: AnyStr
class RecallMessageInfo(BaseSchema):
"""
撤回消息响应数据
"""
errcode: int
errmsg: AnyStr

View File

@@ -0,0 +1,36 @@
from wecom.schemas.base import BaseSchema
class AccessTokenParams(BaseSchema):
"""
获取access_token的参数
@param corpid: 企业ID
@param corpsecret: 应用的凭证密钥
"""
corpid: str
corpsecret: str
class AccessTokenInfo(BaseSchema):
"""
获取access_token的返回数据
@param errcode: 返回码 出错返回码为0表示成功非0表示调用失败
@param errmsg: 对返回码的文本描述内容
@param access_token: 获取到的凭证 最长为512字节
@param expires_in: 凭证的有效时间(秒)
"""
errcode: int
errmsg: str
access_token: str | None = None
expires_in: int | None = None
class AccessTokenInvalid(BaseSchema):
"""
获取access_token失败时的返回数据
@param errmsg: 错误信息
"""
errmsg: str

View File

@@ -0,0 +1,39 @@
from typing import AnyStr, List
from wecom.schemas.base import BaseSchema
class UserInfo(BaseSchema):
"""
用户单体响应数据
"""
errcode: int
errmsg: AnyStr
userid: AnyStr | None = None
name: AnyStr | None = None
department: List[int] | None = None
position: AnyStr | None = None
moblie: AnyStr | None = None
gender: int | None = None
email: AnyStr | None = None
status: int | None = None
class UserSimpleInfo(BaseSchema):
userid: AnyStr
name: AnyStr
department: List[int]
open_userid: AnyStr | None = None
class DepartmentUserInfo(BaseSchema):
errcode: int
errmsg: AnyStr
userlist: List[UserSimpleInfo]
class DepartmentUserDetailInfo(BaseSchema):
errcode: int
errmsg: AnyStr
userlist: List[UserInfo]