{"name":"org.linkedparticles/particles","slug":"linkedparticles-particles","title":"Particles","description":"An append-only ledger of sourced, dated, confidence-scored claims your agent cites and you audit","url":"https://mcp.market/server/linkedparticles-particles","rating":null,"grade":"C","score":68,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":33,"stars":2,"forks":0,"downloads_week":122,"last_push_at":"2026-09-13T18:27:47.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/LinkedParticles/particles-engine-py","website":"https://docs.linkedparticles.org/cli/#mcp-server","version":"1.139.8","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"linkedparticles","version":"1.139.8","runtimeHint":"uvx","transport":{"type":"stdio"},"runtimeArguments":[{"description":"The distribution that provides the server. Its console script is named `particles`, so the executable and the package name differ and `--from` is required.","value":"linkedparticles","type":"named","name":"--from"},{"description":"The console script installed by the linkedparticles distribution.","value":"particles","type":"positional","valueHint":"executable"}],"packageArguments":[{"description":"The CLI command group that hosts the Model Context Protocol surface.","value":"mcp","type":"positional","valueHint":"command"},{"description":"Serve the belief store over stdio. Read-only by default: the read tools are always registered, and the write tools are added only for stores explicitly listed in `mcp.write.enabled_stores`.","value":"serve","type":"positional","valueHint":"subcommand"}],"environmentVariables":[{"description":"Anthropic API key. Required for the tools that call a model — `query` composes a cited natural-language answer, and the semantic half of `lint` reasons over claim pairs. The accessors that only read the store (`particle_show`, `particles_list`, `subjects_*`, `events_*`, `graph_view`, `quality_report`) work without it.","isRequired":true,"isSecret":true,"name":"ANTHROPIC_API_KEY"},{"description":"SQLAlchemy URL of the belief store to serve. Defaults to `sqlite+aiosqlite:///./particles.db` in the working directory.","default":"sqlite+aiosqlite:///./particles.db","name":"DATABASE_URL"},{"description":"Path to a `config.yaml` holding the rest of the engine's settings — additional stores, model selection per purpose, and the `mcp.write.enabled_stores` allowlist that turns the write tools on.","format":"filepath","name":"PARTICLES_CONFIG"}]}],"tools":[{"name":"add_observations","description":"Add new observations to existing entities in the knowledge graph","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_entities","description":"Create multiple new entities in the knowledge graph","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_relations","description":"Delete multiple relations from the knowledge graph","write_action":true,"price_micros":0,"input_schema":null},{"name":"open_nodes","description":"Open specific nodes in the knowledge graph by their names","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_graph","description":"Read the entire knowledge graph","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_nodes","description":"Search for nodes in the knowledge graph based on a query","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":68,"grade":"C","scanned_at":"2026-09-19T20:04:43.573Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:04:43.559Z","components":{"code":{"score":13,"max":25,"notes":["272 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":10,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"env.dump","severity":"high","component":"code","title":"Whole environment serialized (possible credential exfil)","evidence":"linkedparticles-1.139.8/particles/ingest/importers/github.py: …e is public and forkable. git_env = os.environ.copy() git_env[\"GIT_ALLOW_PROTOCOL\"] = \"ht…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"linkedparticles","version":"1.139.8","found":true,"license":"Apache-2.0","dependencyCount":22,"publishedAt":"2026-09-13T18:28:19.545568Z","repositoryUrl":"https://github.com/LinkedParticles/particles-engine-py"}],"repo":{"found":true,"owner":"LinkedParticles","repo":"particles-engine-py","archived":false,"pushedAt":"2026-09-13T18:27:47Z","stars":2,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/1427339?v=4","ownerCreatedAt":"2012-02-10T19:28:10Z","license":"Apache-2.0"},"icon":{"url":"https://docs.linkedparticles.org/assets/favicon.svg","source":"registry"},"presence":{"stars":2,"forks":0,"downloadsWeek":122,"license":"Apache-2.0","lastPushAt":"2026-09-13T18:27:47.000Z","score":33}}}},"grade_history":[],"reviews":[]}