Skip to main content
Glama
tiefeiyu
by tiefeiyu

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTAL_DB_PATHNoThe PORTAL_DB_PATH environment variable controls the SQLite database location (default: portal.db in the working directory).portal.db

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
process_startA

Start a subprocess for interactive use. Use this for interactive programs like SSH, GDB, psql, python REPL, etc. — not for simple one-shot commands. Returns the internal process ID, OS PID, and initial status.

pty — default false for backward compatibility; this is NOT a recommendation. Set true for anything interactive or TUI (ssh, gdb, psql/mysql, REPLs, vim, htop, top, less; anything with -i/-it/-t flags). Consult program_query for this executable BEFORE starting. When in doubt, true — a non-interactive program tolerates a PTY; an interactive one without one hangs. Exception: one-shot commands that page output (git log/diff, less) — prefer pipe mode with --no-pager/GIT_PAGER=cat.

process_readA

Read output from a process. Reads records from the specified time window. Resets the process idle timer.

For PTY processes stderr is merged into stdout (source=stderr reads return empty) and records are arbitrary chunks, not lines — a line may span multiple records. Prompts may arrive without a trailing newline. Read with a generous duration — the default window is only 1s.

process_writeA

Write content to a process's stdin. Only available while the process is running.

Input you write reappears in the output stream (terminal echo) — treat it as your own input, not program output, and do not re-send it. To interrupt a PTY process, send  and a carriage return as two separate writes (Ctrl+C then Enter — ConPTY is line-buffered; split delivery is measurably more reliable); a KeyboardInterrupt traceback in output is expected, not an error. process_signal/process_kill are fallbacks — see their descriptions for the PTY signal mapping (CTRL_C_EVENT is a graceful interrupt, not a hard stop).

process_signalA

Send a signal to a process by name or number. Available signals: SIGABRT, SIGALRM, SIGBUS, SIGCHLD, SIGCLD, SIGCONT, SIGFPE, SIGHUP, SIGILL, SIGINT, SIGIO, SIGIOT, SIGKILL, SIGPIPE, SIGPOLL, SIGPROF, SIGPWR, SIGQUIT, SIGRTMAX, SIGRTMIN, SIGSEGV, SIGSTKFLT, SIGSTOP, SIGSYS, SIGTERM, SIGTRAP, SIGTSTP, SIGTTIN, SIGTTOU, SIGURG, SIGUSR1, SIGUSR2, SIGVTALRM, SIGWINCH, SIGXCPU, SIGXFSZ. For PTY processes only SIGTERM -> terminate, SIGKILL -> kill, and CTRL_C_EVENT -> Ctrl+C are supported; other signals are rejected with an error. For a graceful interrupt use process_write: send  and a carriage return as two separate writes(split delivery).

process_listA

List all managed processes with summary info: id, os_pid, status, timeout, idle duration, and I/O record count.

process_inspectA

Get detailed information about a single process including all metadata and per-stream I/O counts.

For PTY processes: stderr_count is always 0 (merged stream) and I/O counts are chunk-based, not line-based; exit_code is null on Windows (ConPTY exposes none).

process_killA

Kill a single process. Its output data is retained for reading. Use process_cleanup to remove it.

process_kill_allB

Kill all managed processes.

process_clearA

Clear all I/O records for a process. The process table remains, but records are deleted.

process_cleanupA

Remove a terminated process and all its data. Only allowed for processes with status 'exited' or 'killed'.

process_screenA

Snapshot the live screen of a PTY process. For full-screen TUIs (vim, htop, less): the record stream is garbled fragments — use this tool instead of process_read. Screen remains queryable after exit until process_cleanup. Snapshot is pure; passing cols/rows resizes the live PTY first. buffer is 'primary' or 'alternate' (the TUI's alternate screen).

program_queryA

Look up whether a program needs a PTY in the persistent program registry. Call BEFORE process_start. A miss is a normal result, not an error — it means apply the decision rules in the instructions. confirmed_count >= 2 means settled; a single confirmation is a hint — re-verify on first use.

program_recordA

Record a confirmed program fact in the persistent registry after observing its behavior: needs_pty true if it required a terminal (TTY error, hang in pipe mode, or TUI rendering with pty:true), false if it ran fine without one. Record every first-encounter conclusion, including negatives. notes should carry flag-specific caveats (e.g. 'docker run -it only, not docker build').

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/tiefeiyu/Portal'

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