mcp-vessel-accounts
Version:
MCP server for vessel account management including EyeShare API integration, vessel expenses, and purchase orders
135 lines (134 loc) • 3.21 kB
TypeScript
export interface EyeShareTokenResponse {
access_token: string;
expires_in: number;
token_type: string;
scope: string;
}
export interface Vessel {
key: string;
name: string;
imo?: string;
mmsi?: string;
callSign?: string;
flag?: string;
vesselType?: string;
grossTonnage?: number;
netTonnage?: number;
deadweight?: number;
length?: number;
beam?: number;
draft?: number;
yearBuilt?: number;
builder?: string;
owner?: string;
manager?: string;
operator?: string;
}
export interface Invoice {
id: string;
invoiceNumber: string;
invoiceDate: string;
dueDate: string;
amount: number;
currency: string;
status: string;
vessel: {
key: string;
name: string;
};
supplier: {
name: string;
code: string;
};
description: string;
attachments?: Attachment[];
}
export interface Attachment {
id: string;
fileName: string;
fileSize: number;
contentType: string;
uploadDate: string;
description?: string;
}
export interface SearchRequest {
Page: {
Skip: number;
Limit: number;
};
Filters: {
Equality: Array<{
Field: string;
StringValue?: string;
BoolValue?: boolean;
ExactMatch?: boolean;
}>;
Contains: Array<{
Field: string;
StringValue?: string;
StringList?: string[];
ExactMatch?: boolean;
}>;
OpenInterval: any[];
ClosedInterval: Array<{
Field: string;
FromDateTimeValue: string;
ToDateTimeValue: string;
}>;
Regex: any[];
Arrays: any[];
SubSet: Array<{
FilterSet: {
Equality: Array<{
Field: string;
StringValue?: string;
BoolValue?: boolean;
ExactMatch?: boolean;
}>;
Contains: any[];
OpenInterval: any[];
ClosedInterval: any[];
Regex: any[];
Arrays: any[];
SubSet: any[];
TextIndex: any[];
StartsWith: Array<{
Field: string;
Value: string;
CaseSensitive: boolean;
AllowStartWithWildcard: boolean;
}>;
WildCard: any[];
};
Or?: boolean;
}>;
TextIndex: any[];
StartsWith: Array<{
Field: string;
Value: string;
CaseSensitive?: boolean;
AllowStartWithWildcard: boolean;
}>;
WildCard: any[];
Features: {
ExtendedAccess: boolean;
View: string;
};
};
Sort: any[];
CountOnly: boolean;
}
export interface ToolArguments {
[key: string]: any;
}
export type ToolResponse = Array<{
type: "text";
text: string;
}>;
export interface ApiConfig {
baseUrl: string;
clientId: string;
clientSecret: string;
companyCode: string;
module: string;
}