1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
* Hanzo Cloud API
*
* The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
*
* The version of the OpenAPI document: v1
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct McpListing {
/// Description is the publisher's one-line summary.
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// Featured puts the listing on the front of the shelf. Curation.
#[serde(rename = "featured", skip_serializing_if = "Option::is_none")]
pub featured: Option<bool>,
/// Hidden keeps the listing out of the org-visible catalog. Curation: a sync never changes it. Only a SuperAdmin sets it, and only a SuperAdmin sees a hidden entry listed.
#[serde(rename = "hidden", skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
/// ID addresses the listing in a URL. It is the reverse-DNS NAME with its one slash written as an underscore — reversible, because a namespace never contains an underscore — so the id is readable and stable rather than a hash that means nothing to whoever reads a link.
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
/// Logo is the brand mark to render for the listing — the publisher's icon when the entry carries one, or the one an admin set. Curation.
#[serde(rename = "logo", skip_serializing_if = "Option::is_none")]
pub logo: Option<String>,
/// Name is the publisher's reverse-DNS name, e.g. \"com.stripe/mcp\".
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// Official is whether this is the vendor's OWN server rather than someone else's copy of it. Derived on every sync (see isOfficial) until a SuperAdmin sets it explicitly, after which the admin's answer stands.
#[serde(rename = "official", skip_serializing_if = "Option::is_none")]
pub official: Option<bool>,
/// Packages are the runnable package forms — npm, pypi, oci — each with the runtime that launches it and the transport it then speaks.
#[serde(rename = "packages", skip_serializing_if = "Option::is_none")]
pub packages: Option<Vec<models::McpPackage>>,
/// Registry is the upstream this row was synced from.
#[serde(rename = "registry", skip_serializing_if = "Option::is_none")]
pub registry: Option<String>,
/// Remotes are the hosted endpoints the publisher serves the server at.
#[serde(rename = "remotes", skip_serializing_if = "Option::is_none")]
pub remotes: Option<Vec<models::McpRemote>>,
/// Repo is the source repository URL, when the entry names one.
#[serde(rename = "repo", skip_serializing_if = "Option::is_none")]
pub repo: Option<String>,
/// Site is the project's homepage, when the entry names one.
#[serde(rename = "site", skip_serializing_if = "Option::is_none")]
pub site: Option<String>,
/// Synced is when this row was last confirmed against upstream, Unix seconds.
#[serde(rename = "synced", skip_serializing_if = "Option::is_none")]
pub synced: Option<i32>,
/// Title is the human-readable display name, when the entry carries one.
#[serde(rename = "title", skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
/// Transports are the distinct transports this server can be reached over, sorted: some of \"stdio\", \"streamable-http\", \"sse\". A listing with \"streamable-http\" is one an org can enable here and now; a listing that is only \"stdio\" needs a process to run it.
#[serde(rename = "transports", skip_serializing_if = "Option::is_none")]
pub transports: Option<Vec<String>>,
/// Vendor is the namespace half of Name — the publisher, e.g. \"com.stripe\".
#[serde(rename = "vendor", skip_serializing_if = "Option::is_none")]
pub vendor: Option<String>,
/// Version is the published version of this listing.
#[serde(rename = "version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl McpListing {
pub fn new() -> McpListing {
McpListing {
description: None,
featured: None,
hidden: None,
id: None,
logo: None,
name: None,
official: None,
packages: None,
registry: None,
remotes: None,
repo: None,
site: None,
synced: None,
title: None,
transports: None,
vendor: None,
version: None,
}
}
}