Skip to main content
Glama

Ethora MCP Server

by dappros
apiClientDappros.ts4.08 kB
import axios from 'axios' import { appConfig } from './config.js'; export const httpTokens = { appJwt: appConfig.appJwt, _token: '', _refreshToken: '', set refreshToken(token: string) { this._refreshToken = token; }, get refreshToken() { return this._refreshToken; }, set token(newToken: string) { this._token = newToken; }, get token() { return this._token; }, }; export const httpClientDappros = axios.create({ baseURL: appConfig.apiUrl, }); httpClientDappros.interceptors.request.use((config) => { if (config.url === '/users/login/refresh') { return config; } if ( config.url === '/users/login-with-email' || config.url === '/users/login' || (config.url === '/users' && config.method === 'post') || config.url?.startsWith('/users/checkEmail/') || config.url === '/users/sign-up-with-email' || config.url === '/users/sign-up-resend-email' || config.url === '/users/forgot' || config.url === '/users/reset' ) { config.headers.Authorization = httpTokens.appJwt; return config; } config.headers.Authorization = httpTokens.token; return config; }, null); httpClientDappros.interceptors.response.use(null, async (error) => { if (!error.response || error.response.status !== 401) { return Promise.reject(error); } const request = error.config; const url = request.url; if ( url === '/users/login/refresh' || url === '/users/login-with-email' || url === '/users/login' ) { return Promise.reject(error); } try { await refreshToken(); return httpClientDappros(request); } catch (error) { return Promise.reject(error); } }); export const refreshToken = async () => { try { const response = await httpClientDappros.post('/users/login/refresh', null, { headers: { Authorization: httpTokens.refreshToken, }, }); const { token, refreshToken } = response.data; httpTokens.token = token; httpTokens.refreshToken = refreshToken; return httpTokens; } catch (error) { console.error('Token refresh failed:', error); throw error; } }; export function userRegistration(email: string, firstName: string, lastName: string) { return httpClientDappros.post( `/users/sign-up-with-email/`, { email, firstName, lastName } ) } export async function userLogin(email: string, password: string) { let resp = await httpClientDappros.post( `/users/login-with-email`, { email, password, } ) let data = resp.data httpTokens.token = data.token httpTokens.refreshToken = data.refreshToken return resp } export function appList() { return httpClientDappros.get( `/apps/` ) } export function appCreate(displayName: string) { return httpClientDappros.post( `/apps/`, { displayName } ) } export function appDelete(appId: string) { return httpClientDappros.delete( `/apps/${appId}` ) } export function appUpdate(appId: string, changes: any) { return httpClientDappros.put( `/apps/${appId}`, changes ) } export function appGetDefaultRooms() { return httpClientDappros.get( `/apps/get-default-rooms` ) } export function appGetDefaultRoomsWithAppId(appId: string) { return httpClientDappros.get( `/apps/get-default-rooms/app-id/${appId}` ) } export function appCreateChat(appId: string, title: string, pinned: boolean) { return httpClientDappros.post( `/apps/create-app-chat/${appId}`, { title, pinned } ) } export function appDeleteChat(appId: string, chatJid: string) { return httpClientDappros.delete( `/apps/delete-app-chat/${appId}`, { data: { chatJid: chatJid } } ) } export function walletGetBalance() { return httpClientDappros.get( `/wallets/balance` ) } export function walletERC20Transfer(toWallet: string, amount: number) { return httpClientDappros.post( `/tokens/transfer`, { toWallet, amount, "tokenId": "ERC20", "tokenName": "Dappros Platform Token" } ) }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dappros/ethora-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server